举一反三
- 一个单向链表,head指向头结点,每个结点包含数据域data和指针域next。链表按数据域递增有序排列,完成以下函数,使删除链表中数据域值相同的结点。typedefintdatatype;typedefstructnode{datatypedata;structnode*next;}linklist;delete(linklist*head){linklist*p,*q;p=head->next;if(q==NULL)return;p=q->next;while(p!=NULL)if(p->data==q->data){________;free(p);P=q->next;}else{q=q;________}return(s);}
- 在带有头结点的单链表Head中,要向表头插入一个由指针p指向的结点,则执行()。 A: p->next=Head->next;Head->next=p; B: p->next=Head;Head=p; C: p->next=Head;p=Head; D: Head=p;p->next=Head;
- 在一个头指针为head的带头结点的单向循环链表中,p指向尾结点,要使该链表成为不带头结点的单向链表,可执行()。 A: head=head→next;p=NULL B: head=head→next;p→next=head C: head→next=p→next D: head=head→next;p→next=NULL
- 在一个带头结点的单链表中,若 head 所指结点是头结点,若要删除第一个实际元素结点,则执行()。 A: p=head->next;head->next=p->next;free(p); B: p=head;free(p);head=head->next; C: head=head->next;p=head;free(p); D: p=head;head=head->next;free(p);
- 已知head是指向带头结点单链表的首指针,则删除线性表第一个实际结点(首结点)的操作是() A: p=head,head=p->next;free(p); B: p=head->next;free(p);head=head->next; C: p=head->next,head->next=p->next;free(p); D: free(head->next);head=head->next;
内容
- 0
对于一个非空的循环单链表,若头指针为head,假设指针myrear指向表中的最后一个结点,如果要在非空的循环单链表的最前面插入一个新结点p,则执行( )。 A: p->next=head;myrear->next=p;head=p; B: head->next=p;myrear->next=p;head=p; C: myrear->next=p;head=p;head->next=p; D: myrear->next=p;head=p;p->next=head;
- 1
要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head->next;()。
- 2
设有头指针为head的带有头结点的非空单向循环链表,指针p指向其尾结点,要删除头结点,并使其仍为单向循环链表,则可利用下述语句head =head->next ;()。 A: p=head; B: p=NULL; C: p->next=head; D: head=p;
- 3
在带有头结点的单链表Head中,要向表头结点之后插入一个由指针p指向的结点,则执行( )。 A: p->next=Head->next; Head->next=p; B: p->next=Head; Head=p; C: p->next=Head; p=Head; D: Head=p;p->next=Head;
- 4
设有头指针为head的不带头结点的非空的单向循环链表,指针p指向其尾结点,要删除第一个结点,则可利用下述语句 head=head->next;和()。 A: p=head; B: p=NULL; C: p->next=head; D: head=p;