在单链表中,要取得某个元素,只要知道该元素所在结点的地址即可,因此单链表是随机存取结构。
第1题:
阅读以下说明和C语言函数,将应填入(n)。
【说明】
已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。
处理过程中,当元素重复出现时,保留元素第一次出现所在的结点。
图2-1(a)、(b)是经函数compress()处理前后的链表结构示例图。
链表的结点类型定义如下:
typedef struct Node{
int data;
struct Node *next;
}NODE;
【C语言函数】
void compress(NODE *head)
{ NODE *ptr,*q;
ptr= (1); /*取得第一个元素结点的指针*/
while( (2)&& ptr->next) {
q=ptr->next;
while(q&&(3)) { /*处理重复元素*/
(4)q->next;
free(q);
q=ptr->next;
}
(5) ptr->next;
}/*end of while */
}/*end of compress*/
第2题:
阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 函数 GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。 函数DelListElem(LinkList L,int i,ElemType *e) 的功能是删除含头结点单链表的第 i个元素结点,若成功则返回 SUCCESS ,并由参数e 带回被删除元素的值,否则返回ERROR 。 例如,某含头结点单链表 L 如图 4-1 (a) 所示,删除第 3 个元素结点后的单链表如 图 4-1 (b) 所示。图4-1
define SUCCESS 0 define ERROR -1 typedef int Status; typedef int ElemType; 链表的结点类型定义如下: typedef struct Node{ ElemType data; struct Node *next; }Node ,*LinkList; 【C 代码】 LinkList GetListElemPtr(LinkList L ,int i) { /* L是含头结点的单链表的头指针,在该单链表中查找第i个元素结点: 若找到,则返回该元素结点的指针,否则返回NULL */ LinkList p; int k; /*用于元素结点计数*/ if (i<1 ∣∣ !L ∣∣ !L->next) return NULL; k = 1; P = L->next; / *令p指向第1个元素所在结点*/ while (p && (1) ) { /*查找第i个元素所在结点*/ (2) ; ++k; } return p; } Status DelListElem(LinkList L ,int i ,ElemType *e) { /*在含头结点的单链表L中,删除第i个元素,并由e带回其值*/ LinkList p,q; /*令p指向第i个元素的前驱结点*/ if (i==1) (3) ; else p = GetListElemPtr(L ,i-1); if (!p ∣∣ !p->next) return ERROR; /*不存在第i个元素*/ q = (4) ; /*令q指向待删除的结点*/ p->next = q->next; /*从链表中删除结点*/ (5) ; /*通过参数e带回被删除结点的数据*/ free(q); return SUCCESS; }
第3题:
第4题:
在单链表中,若给定某个结点的数据信息,要删除该结点的后继结点的时间复杂度为()。
第5题:
在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。
第6题:
在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的()
第7题:
广义表单链表示法,其中字段link存放与本元素同层的下一个元素所对应结点的地址,当本元素是所在层的最后一个元素时,link=NULL。
第8题:
在单链表中,要访问某个结点,只要知道该结点的地址即可;因此,单链表是一种随机存取结构。
第9题:
对
错
第10题:
对
错
第11题:
对
错
第12题:
第13题:
若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。
A.采用不含头结点的单链表且栈顶元素放在表尾结点B.采用不含头结点的单链表且栈顶元素放在表头结点C.采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点D.采用含头结点的双向链表且栈顶元素放在表尾结点
第14题:
第15题:
若要将一个单链表中的元素倒置,可以借助()建立单链表的思想将链表中的结点重新放置。
第16题:
在单链表中,若给定某个结点的指针,要删除该结点的后继结点的时间复杂度为()。
第17题:
在单链表中,任何两个元素的存储位置之间都有固定的联系,因为可以从头结点查找任何一个元素。
第18题:
在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。
第19题:
在线性表的单链表存储中,若一个元素所在结点地址为p,则其后继结点的地址为()
第20题:
在单链表中,要访问某个结点,只要知道该结点的指针即可;因此,单链表是一种随机存储结构。
第21题:
第22题:
对
错
第23题:
对
错