已知单项线性链表的结点定义如下( )struct node{int data;struct node *next;} *pt1;已知p为链表中的一个结点,它的后继结点是q (p->next指向q),则删除结点q的语句( )A)free(q);B)free(q); pt1 = p->next; p->ne

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 01:24:35
已知单项线性链表的结点定义如下( )struct node{int data;struct node *next;} *pt1;已知p为链表中的一个结点,它的后继结点是q (p->next指向q),则删除结点q的语句( )A)free(q);B)free(q); pt1 = p->next; p->ne

已知单项线性链表的结点定义如下( )struct node{int data;struct node *next;} *pt1;已知p为链表中的一个结点,它的后继结点是q (p->next指向q),则删除结点q的语句( )A)free(q);B)free(q); pt1 = p->next; p->ne
已知单项线性链表的结点定义如下( )
struct node
{
int data;
struct node *next;
} *pt1;
已知p为链表中的一个结点,它的后继结点是q (p->next指向q),则删除结点q的语句( )
A)free(q);
B)free(q); pt1 = p->next; p->next = pt1->next;
C)pt1 = p->next; free(q); p->next = pt1->next;
D)pt1 = p->next; p->next = pt1->next; free(q);
答案是选C,

已知单项线性链表的结点定义如下( )struct node{int data;struct node *next;} *pt1;已知p为链表中的一个结点,它的后继结点是q (p->next指向q),则删除结点q的语句( )A)free(q);B)free(q); pt1 = p->next; p->ne
答案是全错.
正确答案是
pt1 = q->next; free(q); p->next = pt1;
原因:
设这个链表依次是p->q->A->……
如果要删除q,其实就是变成p->A->……
关键在于,直接free(q)的话,q->next,也就是A的地址就丢失了.
所以在free(q)之前,先要保存A的地址.
pt1 = q->next; // q的next就是A的地址
free(q);
p->next = pt1; // p的next变成A的地址

已知单项线性链表的结点定义如下( )struct node{int data;struct node *next;} *pt1;已知p为链表中的一个结点,它的后继结点是q (p->next指向q),则删除结点q的语句( )A)free(q);B)free(q); pt1 = p->next; p->ne 已知带表头结点的单链表L,指针P指向L链表中的一个结点(非首、尾结点):删除P结点的语句序列是? 已知带头结点的单链表L,指针P指向L链表中的一个结点为(非首结点、非尾结点),删除P结点的直接后继结点的语句是 ;(2)删除P结点的直接前驱结点的语句序列是 数据结构已知指针P指向双向链表中的一个结点(非首结点、非尾结点),则:(1)将结点S插入在P结点的直接 已知带表头结点的非空单链表L,指针P指向L链表中的一个结点(非首尾结点),试从下列选项中选择合适的语句序列1,删除P节点的直接后继结点的语句是()2.删除P节点的直接前驱结点的语句是( ★ c语言中的线性数据结构是指什么?下列叙述中正确的是 BA 有一个以上根结点的数据结构不一定是非线性结构B 只有一个根结点的数据结构不一定是线性结构C 循环链表是非线性结构 D 双向 数据结构:在带头结点的単链接head中,已知指针e指向链表的某个结点,写一个算法求该结点的直接前趋结点! 什么是线性分子?什么是非线性分子?(不要线性碳链高分子的定义)急! 关于数据结构线性链表中的指针后移和删除结点的疑问我想问问指针后移和删除元素是不是一回事?比如在线性链表中有三个结点A、B、CA指向B,B指向C那么A->next=A->next->next;(删除B结点,这里我 .带有头结点的单向循环链表L(L为头指针)中,指针p所指结点为尾结点的条件是 ______. 有一个长度为n以顺序结构存储的线性表,结点值均为正整数,编写一个算法,把该线性表分解为两个线性表,其中一个线性表的结点值均为奇数,另一个线性表的结点值均为偶数. 小学奥数中一笔画的奇结点定义 数据结构一些问题.在二叉树的链式结构中,定义了一个指针BTNode *p,为什么visit(p)中的p为结点,它不是根结点的指针吗?另外,在线性表中头指针head为什么可以和头结点比较,head->next是头结点还是 数据结构算法设计题和2个计算题(重分)算法设计题1 设带表头结点的双向链表的定义为typedef int ElemTyp*:typedef struct dnode{file://双向链表结点定义ElemType data:file://数据struct dnode*lLink*rLink:file:/ 关于数据结构删除的三道题,(1)删除p所指向结点的后继结点(假设存在)(2)删除p所指向的结点(3)删除线性表中值为x的数据元素,输出yes,如果x不存在,输出no 已知L是无表头的单链表,其P结点既不是首元结点,也不是尾元结点,a.在p结点后插入s结点的语句序列是---------------- b.在p结点前插入s结点的语句序列是---------------- c.在表首插入s结点的语句序 线性表L在( )情况下适用于使用链式结构实现.a需经常修改L中的结点值b需不断对L进行删除插入cL中含有大量的结点dL中结点结构复杂 按照二叉树的定义,具有3个结点的二叉树有()种形态