举一反三
- 中国大学MOOC:"已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点http://img0.ph.126.net/q4DCvQfrJeuegcRUOzZlBg==/3316901125658873415.jpg且所有结点都已具有如下形式的结构定义:struct node{ int data; struct node *next;}*p, *pr, *head;若要找到p的前驱结点并将地址保存在pr中,则下面正确的语句序列是";
- 中国大学MOOC: 已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点,q是尾结点的前驱结点。【图片】且所有结点都已具有如下形式的结构定义:struct node{ int data; struct node *next;}*p,*q;则下面语句序列的功能是while(p->next->next!=NULL){p=p->next;}free(p->next);p->next=NULL;
- 中国大学MOOC: 已知L是非空单链表,head是链表的头指针,且所有结点都已具有如下形式的结构定义:
- 中国大学MOOC: 向建立好的单向链表中的结点pr后插入一个新结点p,且所有结点都已具有如下形式的结构定义:struct node{ int data; struct node *next;}*p, *pr, *head;则操作正确的是
- 中国大学MOOC: 已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点
内容
- 0
函数功能: 在带头结点单链表中删除一个值为x的结点,函数返回值为头指针。请选择正确的选项链式表定义如下:typedef int datatype;typedef struct link_node{ datatype info; struct link_node *next; }node;函数实现如下:node *dele(node *head,datatype x) { node *pre= (1) ,*q; q=head->next; while( (2) ) { pre=q; q=q->next; } if(q) { pre->next=q->next; //删除q free(p); } return head; }
- 1
中国大学MOOC: 有以下结构体说明和变量定义,如图所示: struct node{int data; struct node *next;} *p,*q,*r; 现要将 q 所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是______。
- 2
有下列结构体说明和变量定义,如图所示,指针p、q、r分别指向此链表中的三个连续结点。 struct node { int data; struct node *next; }*p,*q,*r; 现要将q所指结点从链表中删除,同时要保持链表的连续,下列不能完成指定操作的语句是
- 3
中国大学MOOC: 已知单链表的头指针为head且该链表不带头结点,则该单链表为空的条件是 。
- 4
有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。 struct node int data; struct node*next; ) *p, *q, *r; 现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是( )。 A: p->next=q->next; B: p-next=p->next->next; C: p->next=r; D: p=q->next;