链表 — 试题笔记

例:
所谓静态链表就是一直不发生变化的链表()

//错
用数组描述的链表,即称为静态链表。
在C语言中,静态链表的表现形式即为结构体数组,结构体变量包括数据域data和游标CUR
下面哪个不是线性表?
A 循环链表
B 队列
CD 关联数组
E 空字符串数组
F 双向链表

//D
例:
一个广义表可以为其他广义表所共享()

//对
广义表有如下三个特性:
1.层次性:广义表的元素可以是子表,而子表的元素还可以是子表,由此,广义表是一个多层次的结构;
2.共享性:广义表可为其他表所共享。
3.递归表:广义表可以是其自身的一个子表。
例:
若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间:

A 顺序表
B 双链表
C 带头结点的双循环链表
D 单循环链表

// 1.随机存取任一节点,这个是顺序表比链表快 
   2.在最后插入元素
//A
例:
链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。

//对的,但是链表查找慢
例:
将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度是多少?
A O(mlogm)
B O(m)
C O(m * n)
D O(logm)

// B
把一个单链表 链接在另一个单链表之后,只需要遍历那个长度为m的单链表,找到尾结点,然后把长度为n的单链表头结点赋给它的next域 ,遍历单链表的时间复杂度为O(n)
有朋友说不是O(m) ,一般用n表示,所以O(n) 和O(m) 某种意义上是一样的
例:
某单链表有5个元素,设单链表的节点结构为(data,next),5个元素的data依次为(12345),已知指针q指向节点3,指针p指向节点4,那么下面操作能将链表变为data依次为(1235)的是____。(其中temp为节点类型指针,默认指向NULL)
A q=p->next;
B p=q->next;
C p->next=q->next;
D q->next=p->next; delete q;
E p->data=p->next->data; p->next=p->next->next; delete p->next;
F temp = p->next; p->next=temp->next; p->data=temp->data; delete temp;temp=NULL;

//D: q->next = p->next; p->next = null; delete p;

把节点5的值赋给节点4,然后移去节点5.
//E: p->data=p->next->data; p->next=p->next->next; delete p;     
//F: 正确。
例:
栈通常采用的两种存储结构是什么?

//顺序存储结构和链式存储结构
例:
一个长度为100的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点____。


//A B一快一慢,当二者差一圈时,刚好指向同一节点,3*x-1*x=100   x=50
例:
在双向链表中指针p的结点前插入一个指针q的结点操作是()

A p->Llink=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;

//正确答案: C   
例:
如果使用比较高效的算法判断单链表有没有环的算法中,至少需要几个指针?

//一个指针指向头节点,另一个指针遍历
例:
在单链表中,增加头结点的目的是()
A 标识表结点中首结点的位置
B 算法实现上的方便
C 使单链表至少有一个结点
D 说明单链表是线性表的链式存储实现

//正确答案: B   
下列叙述哪些是对的?
A 线性表的逻辑顺序与物理顺序总是一致的。
B 线性表的顺序存储表示优于链式存储表示。
C 线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
D 二维数组是每个元素都为顺序表的顺序表 .
E 每种数据结构都应具备三种基本运算:插入、删除和搜索。

//
一般而言,并不是所有的数据结构都有这三种基本运算
比如多维数组,就没有插入和删除
再比如说栈和队列,一般并不需要查找(其实原则上说也不能查找,因为逻辑上其访问点被严格限制在线性表的端点了,即使用顺序存储或者链式存储可以在存储结构中查找)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值