云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 线性表 08-12年1月试题及参考答案

线性表 08-12年1月试题及参考答案

  • 62 次阅读
  • 3 次下载
  • 2025/12/12 4:23:38

第2章 线性表08-12年1月试题及参考答案

(2008年1月)

2、在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是( )

A、访问第i个元素的前驱(1

B、在第i个元素之后插入一个新元素(1?i?n) C、删除第i个元素(1?i?n) D、对顺序表中元素进行排序

3、假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是( )

A、head= =NULL B、head–>next= =NULL C、head!=NULL D、head–>next= =head

17、输入线性表的n个元素建立带头结点的单链表,其时间复杂度为___________。

30、假设以带头结点的单链表表示线性表,阅读下列算法f30,并回答问题: (1) 设线性表为( a1, a2, a3, a4, a5, a6, a7 ), 写出执行算法f30后的线性表; (2) 简述算法f30的功能。 void f30(LinkList L) {

//L为带头结点单链表的头指针 LinkList p,q; p=L;

while (p &&p–>next){ q = p–>next;

p–>next =q–>next; p =q–>next; free(q); } }

(1)

(2)

34、假设以单链表表示线性表,单链表的类型定义如下:

typedef struct node { DataType data; struct node *next;

} LinkNode, *LinkList;

编写算法,将一个头指针为head且不带头结点的单链表改造为一个含头结点且头指针仍为head的单向循环链表,并分析算法的时间复杂度。

(2008年10月)

3、在头指针为head的非空单循环链表中,指针p指向尾结点,下列关系成立的是( )

A、 p->next==head B、 p->next->next==head C、 p->next==NULL D、 p==head

17、将两个长度分别为m和n的递增有序单链表,归并成一个按元素递减有序的单链表,可能达到的最好的时间复杂度是 。 30、已知线性表的存储结构为顺序表,阅读下列算法,并回答问题: (1)设线性表L=(21,-7,-8,19,0,-11,34,30,-10),写出执行f30(&L)后的L状态;

(2)简述算法f30的功能。 void f30 (SeqList *L) { int i,j;

for (i=j=0;ilength; i++) if(L->data[i]>=0){

if(i!=j)L->data[j]=L->data[i]; j++; }

L->length=j; }

(1) (2)

(2009年1月)

2、假设某个带头结点的单链表的头指针为head,则判定该表为空表的条件是( )

A、head==NULL; B、head->next==NULL; C、head!=NULL; D、head->next==head;

17、在双向循环链表中插入一个新的结点时,应修改_________个指针域的值。 30、假设以带头结点的单链表表示线性表,单链表的类型定义如下: typedef int DataType;

typedef struct node { DataType data; struct node * next; } LinkNode, * LinkList;

阅读下列算法,并回答问题:

(1)已知初始链表如图所示,画出执行f30(head)之后的链表;

题30图

(2)简述算法f30的功能。 void f30( LinkList head) { LinkList p,r, s; if (head - > next)

{

r = head - > next; p = r->next;

r - > next = NULL; while (p) {

s =p;

p = p->next;

if ( s - > data% 2 = = 0) {

s - > next = head - > next; head - > next = s; } else {

s - > next = r - > next;

r->next = s; r =s; } } }

} (1) (2)

34、假设以带头结点的单链表表示线性表,单链表的类型定义如下: typedef int DataType; typedef struct node { DataType data; struct node * next; } LinkNode, * LinkList;

编写算法,删除线性表中最大元素(假设最大值唯一存在)。函数原型为: void f34(LinkList head) ; (2009年10月)

3、指针p、q和r依次指向某循环链表中三个相邻的结点,交换结点*q和结点*r在表中次序的程序段是( )

A、p->next=r; q->next=r->next; r->next=q; B、p->next=r; r->next=q; q->next=r->next; C、r->next=q; q->next=r->next; p->next=r; D、r->next=q; p->next=r; q->next=r->next; 17、如果需要对线性表频繁进行________或________操作,则不宜采用顺序存储结构。

31、假设学生成绩按学号增序存储在带头结点的单链表中,类型定义如下:

typedef struct Node {

int id; /*学号*/

int score; /*成绩*/ struct Node *next;

} LNode, *LinkList; 阅读算法f31,并回答问题: (1)设结点结构为

f31(A,B)后A所指的链表;

,成绩链表A和B如图所示,画出执行算法

(2)简述算法f31的功能。

void f31(LinkList A, LinkList B) {

LinkList p, q; p=A->next; q=B->next; while (p && q) {

if (p->idid)

p=p->next;

else if (p->id>q->id)

q=q->next; else {

if (p->score<60) if (q->score<60)

p->score=q->score;

搜索更多关于: 线性表 08-12年1月试题及参考答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

第2章 线性表08-12年1月试题及参考答案 (2008年1月) 2、在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是( ) A、访问第i个元素的前驱(1next= =NULL C、head!=NULL D、head–>next= =head 17、输入线性表的n个元素建立带头结点的单链表,其时间复杂度为___________。 30、假设以带头结点的单链表表示线性表,阅读下列算法f3

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com