已知head是指向一个带头结点的单链表的头指针,p指向该链表的任一结点,试写一算法,将p所指向的结点与其后续结点位置交换.这是课本给出的答案void ExchangeNode(LinkList head,ListNode *p){ ListMode *q,*r,*s q=p->next if(p==head) head=head-next s=head-next head->next=p p->next=selse r=hea...
已知head为指向带头结点的单链表的头指针,指针变量p指向一个新结点,next是结点的指针域,若要将p所指结点插入到单链表的表头,则正确的语句序列是()。A.head->
已知head为指向带头结点的单链表的头指针,指针变量p指向一个新结点,next是结点的指针域,若要将p所指结点插入到单链表的表头,则正确的语句序列是A. head->next=p; p->next=head; B. p->next=head->next; head=p;C. head=p; p->next= head->head;...
已知带头结点的单链表L,指针P指向L链表中的一个结点为(非首结点、非尾结点),删除P结点的直接后继结点的语句是 ;(2)删除P结点的直接前驱结点的语句序列是 ;(3)删除P结点的语句序列是 ;(4)删除首结点的语句序列是 ;(5)删除尾结点的语句序列是 . 答案 1. L *Q; P->next = Q; P->next = Q->next...
【题目】已知单链表头指针位置,已知指针指向其中某结点,设计算法,删除指针所指向结点前驱结点 答案 【解析】假设链表类型为 struct node int data struct node *next node *g p-next p-data q-data p-next =q-next free(g) 搞定! 思路是这样的 我们删除p的下一个节点很容易,删除p所指向的节 点很难,我们...
(1)算法的基本思想如下:从头至尾遍历单链表,并用指针P指向当前节点的前K个节点。当遍历到链表的最后一个节点时,指针P所指向的节点即为所查找的节点。 (2)详细实线步骤:增加两个指针变量和一个整型变量,从链表头向后遍历,其中指针P1指向当前遍历的节点,指针P指向P1所指向节点的前K个节点,如果P1之前没有K个节点...
解析 39.B 39.【答案】 B 【考点】单链表的删除 【解析 】 如图2.10所示,删除首元结点a时需要修改头结点的指针。 ① q=L→next //将指针q指向首元结点a ② L -next=q-next; //头指针L指向α的后继结点b 因此答案选择B。 ② L - 八图2.10 单链表删除首元结点 ...
已知一带头结点的单链表,由头指针H指向,其结点的类型如下: typedef struct node { elemtype data; struct node *next; }NODE,*NODEPTR; 现要在链表中删除其关键字为aidkey的结点,其程序如下: int deletelm(NODEPTR H,keytype aidkey) /*若删除成功,则返回1,否则返回0*/ { NODEPTR pre,p;...
【单选题】已知单链表的头指针变量为 head且该链表不带头结点,则该单链表的判空条件是()。A. head==NULL B. head->next==NULL C. he