网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
在线性表的单链表存储中,若一个元素所在结点地址为p,则其后继结点的地址为()
参考答案
更多 “在线性表的单链表存储中,若一个元素所在结点地址为p,则其后继结点的地址为()” 相关考题
考题
●在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p→*next→*next=head,则 (55) 。(55) A.p指向头结点B.p指向尾结点C.*p的直接后继是头结点D.*p的直接后继是尾结点
考题
对于单链表存储结构,以下说法错误的是()
A.一个结点的数据域用于存放线性表的一个数据元素B.一个结点的指针域用于指向下一个数据元素的结点C.单链表必须带有头结点D.单链表中的所有结点可以连续存放,也可以不连续存放
考题
在一个单链表中,若p所指结点不是最后结点,则删除p所指结点的后继结点的正确操作是 ______。A.p=p>nextB.p->next=p->nextC.p->next=p->next->nextD.p-next=p
考题
在一个单链表中,若删除P结点的后继结点,则(34)。A.P→next=P→next→nextB.P=P→next;P→next=P→next→nextC.P→next=P→nextD.P=P→next→next
考题
在一个单链表中,若删除p所指结点的后继结点,则执行(38)。A.p→next =p→next→next;B.p=p→next; p→next =p→next→next;C.P→next =p→next;D.p=p→next→next;
考题
在单链表中,增加头结点的目的是( )。 A.方便运算的实现B.使单链表至少有一个结点SXB
在单链表中,增加头结点的目的是( )。A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现
考题
阅读以下说明和 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-1define 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 (i1 ∣∣ !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; }
考题
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
函数GetListElemPtr(LinkList L,int i)的功能是查找含头结点单链表的第i个元素。若找到,则返回指向该结点的指针,否则返回空指针。
函数DelListElem(LinkList L,int i,ElemType *e)的功能是删除含头结点单链表的第i个元素结点,若成功则返回SUCCESS,并由参数e带回被删除元素的值,否则返回ERROR。
例如,某含头结点单链表L如下图(a)所示,删除第3个元素结点后的单链表如下图(b)所示。
1.jpg
#define SUCCESS 0 #define ERROR -1 typedef intStatus; typedef intElemType;
链表的结点类型定义如下:
typedef struct Node{ ElemType data; struct Node *next; }Node,*LinkList; [C代码] LinkListGetListElemPtr(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 ++k; } return p; } StatusDelListElem(LinkList L,int i,ElemType *e) { /*在含头结点的单链表L中,删除第i个元素,并由e带回其值*/ LinkList p,q; /*令P指向第i个元素的前驱结点*/ if(i==1) ______; else p=GetListElemPtr(L,i-1); if(!P || !p->next) return ERROR; /*不存在第i个元素*/ q=______; /*令q指向待删除的结点*/ p->next=q->next; //从链表中删除结点*/ ______; /*通过参数e带回被删除结点的数据*/ free(q); return SUCCESS; }
考题
在一个单链表中,若p所指的结点不是最后结点,则删除p所指的结点的后继结点的正确操作是()。A.p=p->next
B.p->next=p->next
C.p->next=p->next->next
D.p->next=p
考题
在具有n个结点的单链表中,实现()的操作,其算法的时间复杂度都是O(n)。A.遍历链表和求链表的第i个结点
B.在地址为P的结点之后插入一个结点
C.删除开始结点
D.删除地址为P的结点的后继结点
考题
单选题若线性表最常用的操作是在最后一个元素之后插入一个结点和删除最后一个结点,则采用()存储方式节省时间。A
单链表;B
双向链表;C
单循环链表;D
带头结点的双循环链表;
热门标签
最新试卷