欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年数据结构线性表习题及详解.pdf

    • 资源ID:90931773       资源大小:2.77MB        全文页数:57页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年数据结构线性表习题及详解.pdf

    学习必备 欢迎下载 第 2 章 线性表 一 选择题 1下述哪一条是顺序存储结构的优点?()【北方交通大学 2001 一、4(2 分)】A存储密度大 B 插入运算方便 C 删除运算方便 D 可方便地用于各种逻辑结构的存储表示 2下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学 2001 一、14(2 分)】A线性表采用顺序存储,必须占用一片连续的存储单元。B线性表采用顺序存储,便于进行插入和删除操作。C线性表采用链接存储,不必占用一片连续的存储单元。D线性表采用链接存储,便于插入和删除操作。3线性表是具有 n 个()的有限序列(n0)。【清华大学 1998 一、4(2 分)】A表元素 B字符 C数据元素 D数据项 E信息项 4 若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。【哈尔滨工业大学 2001 二、1(2 分)】A顺序表 B双链表 C带头结点的双循环链表 D单循环链表 5某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。【南开大学 2000 一、3】A单链表 B仅有头指针的单循环链表 C双链表 D仅有尾指针的单循环链表 6设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。A.单链表 B.单循环链表 C.带尾指针的单循环链表 D.带头结点的双循环链表【合肥工业大学 2000 一、1(2 分)】7若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用()存储方式最节省运算时间。【北京理工大学 2000 一、1(2 分)】A单链表 B双链表 C单循环链表 D带头结点的双循环链表 8.静态链表中指针表示的是().【北京理工大学 2001 六、2(2 分)】A 内存地址 B数组下标 C下一元素地址 D左、右孩子地址 9.链表不具有的特点是()【福州大学 1998 一、8(2 分)】A插入、删除不需要移动元素 B 可随机访问任一元素 C不必事先估计存储空间 D 所需空间与线性长度成正比 10.下面的叙述不正确的是()【南京理工大学 1996 一、10(2 分)】A线性表在链式存储时,查找第 i 个元素的时间同 i 的值成正比 B.线性表在链式存储时,查找第 i 个元素的时间同 i 的值无关 C.线性表在顺序存储时,查找第 i 个元素的时间同 i 的值成正比 D.线性表在顺序存储时,查找第 i 个元素的时间同 i 的值无关 11.线性表的表元存储方式有((1))和链接两种。试指出下列各表中使用的是何种存储方式:表 1 是((2))存储方式;表 2 是((3))存储方式;表 3 是((4))存储方式;表4 是((5))存储方式。表左的 s 指向起始表元。表元编号 货号 数量 表元间联系 1 618 40 2 2 205 2 3 学习必备 欢迎下载 表 1 s 表 2 s 表 3 s 表 4 s 供选择的答案:A.连续 B.单向链接 C.双向链接 D.不连接 E.循环链接 F.树状 G.网状 H.随机 I.顺序 J.顺序循环【上海海运学院 1995 二、1(5 分)】12.(1)静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第 i 个元素的时间与 i 无关。(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。(3)静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。以上错误的是()【南京理工大学 2000 一、3(1.5 分)】A(1),(2)B(1)C(1),(2),(3)D.(2)13.若长度为 n 的线性表采用顺序存储结构,在其第 i 个位置插入一个新元素的算法的时间复杂度为()(1=iLlink=q;q-Rlink=p;p-Llink-Rlink=q;q-Llink=q;B.p-Llink=q;p-Llink-Rlink=q;q-Rlink=p;q-Llink=p-Llink;C.q-Rlink=p;q-Llink=p-Llink;p-Llink-Rlink=q;p-Llink=q;D.q-Llink=p-Llink;q-Rlink=q;p-Llink=q;p-Llink=q;24在单链表指针为 p 的结点之后插入指针为 s 的结点,正确的操作是:()。Ap-next=s;s-next=p-next;B s-next=p-next;p-next=s;Cp-next=s;p-next=s-next;D p-next=s-next;p-next=s;【青岛大学 2001 五、3(2 分)】25对于一个头指针为 head 的带头结点的单链表,判定该表为空表的条件是()Ahead=NULL Bheadnext=NULL C headnext=head Dhead!=NULL【北京工商大学 2001 一、5(3 分)】26.在双向链表存储结构中,删除 p 所指的结点时须修改指针()。A(p.llink).rlink:=p.rlink (p.rlink).llink:=p.llink;B p.llink:=(p.llink).llink (p.llink).rlink:=p;C(p.rlink).llink:=p p.rlink:=(p.rlink).rlink D p.rlink:=(p.llink).llink p.llink:=(p.rlink).rlink;【西安电子科技大学 1998 一、1(2 分)】27.双向链表中有两个指针域,llink和 rlink分别指向前趋及后继,设 p 指向链表中的一个结点,现要求删去 p 所指结点,则正确的删除是()(链中结点数大于 2,p 不是第一个结点)Ap.llink.rlink:=p.llink;p.llink.rlink:=p.rlink;dispose(p);Bdispose(p);p.llink.rlink:=p.llink;p.llink,rlink:=p.rlink;Cp.llink.rlink:=p.llink;dispose(p);p.llink.rlink:=p.rlink;D以上 A,B,C都不对。【南京理工大学 1997 一、1(2 分)】二、判断 1.链表中的头结点仅起到标识的作用。()【南京航空航天大学 1997 一、1(1 分)】2.顺序存储结构的主要缺点是不利于插入或删除操作。()【南京航空航天大学 1997 一、2(1 分)】3线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。()【北京邮电大学 1998 一、2(2 分)】4顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。()【北京邮电大学 2002 一、2(1 分)】5.对任何数据结构链式存储结构一定优于顺序存储结构。()【南京航空航天大学 1997 一、3(1 分)】6顺序存储方式只能用于存储线性结构。()【中科院软件所 1999 六、1-2(2 分)】【上海海运学院 1997 一、1(1 分)】7集合与线性表的区别在于是否按关键字排序。()【大连海事大学 2001 一、5(1分)】8.所谓静态链表就是一直不发生变化的链表。()【合肥工业大学 2000 二、1(1 分)】9.线性表的特点是每个元素都有一个前驱和一个后继。()【合肥工业大学 2001 二、1(1 分)】10.取线性表的第 i 个元素的时间同 i 的大小有关.()【南京理工大学 1997 二、9(2分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 分)】11.循环链表不是线性表.()【南京理工大学 1998 二、1(2 分)】12.线性表只能用顺序存储结构实现。()【青岛大学 2001 四、2(1 分)】13.线性表就是顺序存储的表。()【青岛大学 2002 一、1(1 分)】14为了很方便的插入和删除数据,可以使用双向链表存放数据。()【上海海运学院 1995 一、1(1 分)】【上海海运学院 1997 一、2(1 分)】15.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。()【上海海运学院 1996 一、1(1 分)】【上海海运学院 1999 一、1(1 分)】16.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。()【上海海运学院 1998 一、2(1 分)】三、填空 1当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_存储结构。【北方交通大学 2001 二、4】2线性表 L=(a1,a2,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_。【北方交通大学 2001 二、9】3设单链表的结点结构为(data,next),next 为指针域,已知指针 px 指向单链表中 data为 x 的结点,指针 py 指向 data 为 y 的新结点,若将结点 y 插入结点 x 之后,则需要执行以下语句:_;_;【华中理工大学 2000 一、4(2 分)】4在一个长度为 n 的顺序表中第 i 个元素(1=i0 DO BEGIN (2);(3);(4);(5);read(k)END;q.next:=NIL;END;【北京师范大学 1999 三】21.已给如下关于单链表的类型说明:TYPE list=node;node=RECORD data:integer;next:list;END;以下程序采用链表合并的方法,将两个已排序的单链表合并成一个链表而不改变其排序性(升序),这里两链表的头指针分别为 p 和 q.PROCEDURE mergelink(VAR p,q:list):分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 VAR h,r:list;BEGIN (1)_ h.next:=NIL;r:=h;WHILE(pNIL)AND(qNIL)DO IF(p.data=q.data)THEN BEGIN (2)_;r:=p;p:=p.next;END ELSE BEGIN (3)_;r:=q;q:=q.next;END;IF(p=NIL)THEN r.next:=q;(4)_;p:=h.next;dispose(h);END;【厦门大学 2000 三、2(8 分)】22假设链表 p 和链表 q 中的结点值都是整数,且按结点值的递增次序链接起来的带表头结点的环形链表。各链表的表头结点的值为 max,且链表中其他结点的值都小于 max,在程序中取 max为 9999。在各个链表中,每个结点的值各不相同,但链表 p 和链表 q 可能有值相同的结点(表头结点除外)。下面的程序将链表 q 合并到链表 p 中,使得合并后的链表是按结点值递增次序链接起来的带表头结点的环形链表,且链表中各个结点的值各不相同。请在划线处填上适当内容,每个框只填一个语句或一个表达式,链表的结点类型如下 TYPE nodeptr=nodetype;nodetype=RECORD data:integer;link:nodeptr;END;CONST max=9999;PROCEDURE merge(VAR p:nodeptr;q:nodeptr);VAR r,s:nodeptr;BEGIN r:=p;WHILE (A)_ DO BEGIN WHILE r.link.dataq.link.data THEN BEGIN s:=(C)_;(D)_:=s.link;s.link:=(E)_;(F)_ _:=s;(G)_;END ELSE BEGIN (H)_;s:=q.link;(I)_;dispose(s)END END;dispose(q)END;【复旦大学 1997 五(18 分)】23PROC ins_linklist(la:linkisttp;i:integer;b:elemtp);la 为指向带头结点的单链表的头指针,本算法在表中第 i 个元素之前插入元素 b p:=(1);j:=(2);指针初始化,j 为计数器 WHILE(pNIL)AND (3)DO p:=(4);j:=j+1;寻找第 i-1 个结点 IF(p=NIL)OR (5)THEN error(No this position)分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 ELSE new(s);s.data:=b;s.next:=p.next;p.next:=s;ENDP;ins-linklist【燕山大学 1998 四、1(15 分)】24.已知双链表中结点的类型定义为:TYPE dpointer=list;list=RECORD data:integer;left,right:dpointer;END;如下过程将在双链表第 i 个结点(i=0)之后插入一个元素为 x 的结点,请在答案栏给出题目中_处应填入的语句或表达式,使之可以实现上述功能。PROCEDURE insert(VAR head:dpointer;i,x:integer);VAR s,p:dpointer;j:integer;BEGIN new(s);s.data:=x;IF(i=0)THEN BEGIN s.right:=head;(1)_ head:=s END如果 i=0,则将 s 结点插入到表头后返回 ELSE BEGIN p:=head;(2)_;在双链表中查找第 i 个结点,由 p 所指向 WHILE(pNIL)AND(ji)DO BEGIN j:=j+1;(3)_ END;IF pNIL THEN IF(p.right=NIL)THEN BEGIN p.right:=s;s.right:=NIL;(4)_END ELSE BEGIN s.right:=p.right;(5)_;p.right:=s;(6)END ELSE writeln(can not find node!)END END;【厦门大学 2002 二(12 分)】25阅读以下算法,填充空格,使其成为完整的算法。其功能是在一个非递减的顺序存储线性表中,删除所有值相等的多余元素。CONST maxlen=30 TYPE sqlisttp=RECORD elem:ARRAY1.maxlen OF integer;last:0.maxlen END;PROC exam21(VAR L:sqlisttp);j:=1;i:=2;WHILE(1)_ DO IF L.elemiL.elemj THEN (2)_;(3)_;i:=i+1 (4)_;ENDP;【同济大学 2000 二、1(10 分)】26在本题的程序中,函数过程 Create_link_list(n)建立一个具有 n 个结点的环形链表;程序过程 josephus(n,i,m)对由Create_link_list(n)所建立的具有n个结点的环形链表按一定的次序逐个输出并删除链表中的所有结点,参数 n(n0)指明环形链表的结点个数,参数 i(1=i0)是步长,指明从起始结点或前次被删除并输出的结点之后的第 m个结点作为本次被输出并删除的结点。例如,对于下图中具有 6 个结点的环形链表,在调用 josephus(6,3,2)后,将输出 5,1,3,6,4,2 请在横线处填上适当内容,分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 每空只填一个语句。TYPE nodeptr=nodetype;nodetype=RECORD data:intrger;link:nodeptr END;VAR n,i,m:integer;FUNCTION Create_link_list(n:integer):nodeptr;VAR head,p,q:nodeptr;i:integer;BEGIN head:=NIL;IF n0 THEN BEGIN new(head);p:=head;FOR i:=1 TO n-1 DO BEGIN p.data:=i;new(q);(A)_;(B)_ END;p.data:=n;(C)_;END;Creat_link_list:=head END;PROCEDURE josephus(n,i,m:integer);VAR p,q:nodeptr;j:integer;BEGIN p:=Creat_link_list(n);WHILE i1 DO BEGIN p:=p.link;i:=i-1 END;(D)_;WHILE jn DO BEGIN FOR i:=1 TO m-1 DO p:=p.link;(E)_;write(q.data:8);(F)_;dispose(q);j:=j+1 END END;【复旦大学 1997 四(12 分)】27对于给定的线性链表 head,下面的程序过程实现了按结点值非降次序输出链表中的所有结点,在每次输出一个结点时,就把刚输出的结点从链表中删去。请在划线处填上适当的内容,使之成为一个完整的程序过程,每个空框只填一个语句。TYPE nodeptr=nodetype;nodetype=RECORD data:integer;link:nodeptr END;分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 VAR head:nodeptr;PROCEDURE sort_output_delete(head:nodeptr);VAR p,q,r,s:nodeptr;BEGIN WHILE head NIL DO BEGIN p:=NIL;q:=head;r:=q;s:=q.link;WHILE s NIL DO BEGIN IF s.data q.data THEN BEGIN (1)_;(2)_ END;r:=s;(3)_ END;write(q.data:5);IF p=NIL THEN (4)_ ELSE (5)_;dispose(q);END;writeln END;【复旦大学 1996 七(20 分)1995 一(12 分)与本题相似】28 下面函数的功能是在一个按访问频度不增有序的,带头结点的双向链环上检索关键值为x 的结点,对该结点访问频度计数,并维护该链环有序。若未找到,则插入该结点。所有结点的频度域初值在建表时都为零。请将程序中四处空缺补写完整。TYPE link=node node=RECORD key:char;freq:integer;pre,next:link;END;VAR l:link;FUNCTION loc(l:link;x:char):link;VAR p,q:link;BEGIN p:=l.next;(1)_;WHILE p.keyx DO p:=p.next;IF p=l THEN new(q);q.key:=x;q.freq:=0 ELSE 找到 p.freq:=p.freq+1;q:=p;(2)_;WHILE q.freqp.pre.freq DO p:=p.pre;IF pq THEN (3)_ ;IF(4)_ THEN q.next:=p,q.pre;=p.pre;p.pre.next:=q;p.pre:=q return(q);END;【北京工业大学 1999 五(12 分)】29循环链表 a 和 b 的结点值为字母,其中 a 表非递减有序,下面的程序欲构造一个递增有序的循环链表 c,其中结点的值为同时在 a,b 两链表中出现的字母,且 c 中字母不重复,请补上程序中空缺的部分,并估计算法的时间复杂度。(设 a,b 的结点数分别为 m,n)TYPE link=node;node=RECORD 分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 key:char;next:link END;PROC jj(a,b:link;VAR c:link);VAR p,q,r,s:link;BEGIN new(c);c.next:=c;q:=a;p:=a.next;WHILE pa DO (1)_;WHILE p.key=p.next.key DO q:=p;p=p.next;跳过相同字母 r:=b.next;(2)_;WHILE r.key p.key DO r:=r.next;IF rb THEN s:=p;q.next:=p.next;(3);s.next:=c.next;c.next:=s;c:=s ELSE q:=p;p:=p.next ;c:=c.next;END;算法时间复杂度为 O(4)_ 【北京工业大学 2000 四(15 分)】30.以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。void reverse(pointer h)/*h为附加头结点指针;类型 pointer同算法设计第 3 题*/pointer p,q;p=h-next;h-next=NULL;while(1)_)q=p;p=p-next;q-next=h-next;h-next=(2)_;【西南交通大学 2000 一、9】31.下面是用 c 语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用 L返回逆置后的链表的头指针,试在空缺处填入适当的语句。void reverse(linklist&L)p=null;q=L;while(q!=null)(1);q-next=p;p=q;(2)_ ;(3)_;【北京理工大学 2001 九、1(6 分)】32下面程序段是逆转单向循环链表的方法,p0 是原链表头指针,逆转后链表头指针仍为p0。(可以根据需要增加标识符)p:=p0;q0:=NIL;WHILE(1)_ DO BEGIN (2)_;(3)_;(4)_;(5)_ END;p.next:=q0;p0.next:=p;p0:=p;【中国人民大学 2000 二、1(4 分)】33一个无头结点的线性链表(不循环)有两个域。数据域 data,指针域 next,链首 head,下面算法用 read(num)读入数据,当 num小于 0 时,输入结束。建立一个数据以递增序组成的链表。分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 PROC insert(head,x);在链首为 head 的表中按递增序插入 x new(r);r.data:=x;IF head=NIL THEN head:=(1)_;r.next:=(2)_ ELSE IF(3)_ THEN r.next:=head;head:=r ELSE p:=head;WHILE(4)_ AND (p .next NIL)DOq:=p;(5)_ ;IF(6)_ THEN q .next:=(7)_;r.next:=(8)_;ELSE p .next:=(9)_;r .next:=(10)_;ENDP;PROC creat(head);head:=(11)_;read(num);WHILE num0 DO insert(head,num);read(num)ENDP;【南京理工大学 1999 三、4(11 分)】34.一元稀疏多项式以循环单链表按降幂排列,结点有三个域,系数域 coef,指数域 exp和指针域 next;现对链表求一阶导数,链表的头指针为 ha,头结点的 exp 域为 1。derivative(ha)q=ha;pa=ha-next;while(1)_)if(2)_)(3)_);free(pa);pa=(4)_);else pa-coef(5)_);pa-exp(6)_);q=(7)_);pa=(8)_);【南京理工大学 2000 三、3(10 分)】35.下面是删除单链表 L中最大元素所在结点的类 PASCAL 语言算法,请在横线填上内容,完成其功能。TYPE pointer=node;node=RECORD data:integer;next:pointer END;PROCEDURE delmax(L:pointer);VAR p,q,r:pointer;m:integer;BEGIN r:=L;p:=L.next;IF pNIL THEN m:=p.data;(1)_;p:=p.next;WHILE pNIL DO IF(2)_THEN (3)_;m:=p.data;分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 (4)_;p:=p.next;q:=r.next;(5)_;dispose(q);END;【北京科技大学 1998 二】36对单链表中元素按插入方法排序的 C语言描述算法如下,其中 L为链表头结点指针。请填充算法中标出的空白处,完成其功能。typedef struct node int data;struct node*next;linknode,*link;void Insertsort(link L)link p,q,r,u;p=L-next;(1)_;while(2)_)r=L;q=L-next;while(3)_&q-datadata)r=q;q=q-next;u=p-next;(4)_;(5)_;p=u;【北京科技大学 2001 二(10 分)】37下面是一个求两个集合 A和 B之差 C=A-B 的程序,即当且仅当 e 是 A的一个元素,但不是 B中的一个元素时,e 才是 C中的一个元素。集合用有序链表实现,初始时,A,B集合中的元素按递增排列,C为空;操作完成后 A,B保持不变,C中元素按递增排列。下面的函数append(last,e)是把值为 e 的新结点链接在由指针 last指向的结点的后面,并返回新结点的地址;函数 difference(A,B)实现集合运算 A-B,并返回表示结果集合 C的链表的首结点的地址。在执行 A-B运算之前,用于表示结果集合的链表首先增加一个附加的表头结点,以便新结点的添加,当 A-B运算执行完毕,再删除并释放表示结果集合的链表的表头结点。程序(a)(编者略去这个 PASCAL 程序)程序(b)typedef struct node int element;struct node*link;NODE;NODE *A,*B,*C;NODE *append(NODE*last,int e)last-link=(NODE*)malloc(sizeof(NODE);last-link-element=e;return(last-link);NODE*difference(NODE*A,NODE*B)NODE*C,*last;C=last=(NODE*)malloc(sizeof(NODE);while(1)_ if(A-elementelement)last=append(last,A-element);A=A-link;else if(2)_ A=A-link;B=B-link;ELSE (3)_;while(4)_ last=append(last,A-element);A=A-link;分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 (5)_;last=C;C=C-link;free(last);return(C);/*call form:C=difference(A,B);*/【上海大学 2000 一、4(10 分)】四 应用题 1线性表有两种存储结构:一是顺序表,二是链表。试问:(1)如果有 n 个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构?为什么?(2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么?【西安电子科技大学 1999 软件 二、1(5 分)】2线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。【重庆大学 2000 二、5】3 若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?为什么?【北京航空航天大学 1998 一、2(4 分)】4线性结构包括_、_、_和_。线性表的存储结构分成_和_。请用类 PASC L语言描述这两种结构。【华北计算机系统工程研究所 1999 一、2(10分)】5线性表(a1,a2,an)用顺序映射表示时,ai和 ai+1(1=in的物理位置相邻吗?链接表示时呢?【东南大学 1996 一、1(5 分)】6.说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;头结点与首元结点的关系。【厦门大学 2000 五、1(14%/3分)】7.试述头结点,首元结点,头指针这三个概念的区别.【武汉交通科技大学 1996 二、2(3 分)】【西安电子科技大学 2001 计应用 二、1(5 分)】8.已知有如下定义的静态链表:TYPE component=RECORD data:elemtp;next:0.maxsize END VAR stalist:ARRAY0.maxsize OF component;以及三个指针:av 指向头结点,p 指向当前结点,pre 指向前驱结点,现要求修改静态链表中 next 域中的内容,使得该静态链表有双向链表的功能,从当前结点 p 既能往后查找,也能往前查找:(1)定义 next 域中的内容。(用老的 next 域中的值表示);(2)如何得到当前结点 p 的前驱(pre)的前驱,给出计算式;(3)如何得到 p 的后继,给出计算式;【中科院计算所 2000 四(10 分)】9.在单链表和双向链表中,能否从当前结点出发访问到任何一个结点?【西安电子科技大学 1999 计应用一、1(5 分)】10.如何通过改链的方法,把一个单向链表变成一个与原来链接方向相反的单向链表?【中国人民大学 2001 二、4(2 分)】分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载 11.下面是一算法的核心部分,试说明该算法的功能。pre:=L.next;L 是一单链表,结点有数据域 data和指针域 next IF preNIL THEN WHILE pre.nextNIL DO BEGIN p:=pre .next;IF p .data=pre.data THEN pre:=p ELSE return(false)END;return(true);【燕山大学 2000 七、1(7 分)】12.设单链表结点指针域为 next,试写出删除链表中指针 p 所指结点的直接后继的 C语言语句。【北京科技大学 2000 一、3】13.设单链表中某指针 p 所指结点(即 p 结点)的数据域为 data,链指针域为 next,请写出在 p 结点之前插入 s 结点的操作(PASCAL 语句)。【北京科技大学 1999 一、2(2 分)】14.有线性表(a1,a2,an),采用单链表存储,头指针为 H,每个结点中存放线性表中一个元素,现查找某个元素值等于 X的结点。分别写出下面三种情况的查找语句。要求时间尽量少。(1)线性表中元素无序。(2)线性表中元素按递增有序。(3)线性表中元素按递减有序。【北京邮电大学 1994 七(7 分)】15设 pa,pb 分别指向两个带头结点的有序(从小到大)单链表。仔细阅读如下的程序,并回答问题:(1)程序的功能。(2)s1,s2 中值的含义。(3)pa,pb 中值的含义。PROCEDURE exam(pa,pb)BEGIN p1:=pa.next;p2:=pb.next;pa.next:=;s1:=0;s2:=0;WHILE p1 AND p2 DO CASE p1 .datap2.data:p2:=p2.next;p1.data=p2.data:p:=p1;p1:=p1.next;p.next:=pa.next;pa.next:=p;p2:=p2.next;s1:=s1+1;END;WHILE p1 DO p:=p1;p1:=p1.next;dispose(p);s2:=s2+1 END;【南京航空航天大学 1995 十(9 分)】16写出下图双链表中对换值为 23 和 15 的两个结点相互位置时修改指针的有关语句。结点结构为:(llink,data,rlink)【北京邮电大学 1992 三、4(25/4 分)】17按照下列题目中的算法功能说明,将算法描述片段中的错误改正过来。(1)(分)下面的算法描述片段用于在双链表中删除指针变量 p 所指的结点:p.rlinkp.llink.rlink;p.llinkp.rlink.llink dispose(p);10231530p分线性表采用顺序存储必须占用一片连续的存储单元线性表采用顺序存分表元素字符数据元素数据项信息项若某线性表最常用的操作是存取任的操作是在最后一个元素之后插入一个元素和删除第一个元素则采用存学习必备 欢迎下载(2)(分)下面的算法描述片段用于在双链表中指针变量 p 所指结点后插入一个新结点:new(q);q.llinkp;p.rlinkq;q.rlinkp.rlink;qp.rlink.llink;【山东大学 1999 八(10 分)】18已知 L 是一个数据类型 linkedlist的单循环链表,pa 和 pb 是指向 L 中结点的指针。简述下列程序段的功能。【山东科技大学 2001 一、2(5 分)】TYPE linkedlist=node;node=RECORD data:datatype;next:linkedlist END;PROC Mp(pa,pb:linkedlist);PROC subp(s,q:linkedlist);p:=s;WHILE p.nextq DO p:=p.next;p.next:=s ENDP;subp(pa,pb);subp(pb,pa);ENDP;19设双向循环链表中结点的数据域、前驱和后继指针域分别为 data,pre和 next,试写出在指针 p 所指结点之前插入一 s 结点的 C语言描述语句。【北京科技大学 2001 一、3(2分)】20本题给出一个子程序的框图,如图 2,试填空完善此算法框图。该子程序用来寻找第一个均出现在三个整数单向链表 f1,f2,f3 中的相同整数。假定在调用该子程序前,这三个整

    注意事项

    本文(2023年数据结构线性表习题及详解.pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开