A、p->next->prev=p->prev;p->prev->next=p->next;free(p);
B、p->next->prev=p->next;p->prev->next=p->next;free(p);
C、p->next->prev=p->next;p->prev->next=p->prev;free(p);
D、p->next->prev=p->prev;p->prev->next=p->prev;free(p);
设单循环链表中结点的结构为(data,link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。若想删除链表第一个结点,则应执行下列哪一个操作()。
A.s=rear;rear=rear->link;deletes;
B.rear=rear->link;deleterear;
C.rear=rear->link->link;deleterear;
D.s=rear->link->link;rear->link->link=s->link;deletes;
非空单链表结点结构为【data,next】,指针p所指结点是尾结点的条件是 。
已知一个带有表头结点的非空单链表,结点结构为: data link 假设该链表中data域中存放的是整数,且只给出了头指针list,在不改变链表的前提下,请设计一个尽可能高效的算法,输出链表中所有间隔为k(k为正整数)的两个结点元素的和。要求: (1)给出算法的基本设计思想(3分) (2)根据设计思想,采用类C语言描述算法,关键之处给出简要注释。(7分)
以下变量定义: int* p,q; 中,p和q都是指针。
程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。 若有以下程序段 q=s; s=s->next; p=s; while(p->next) p=p->next; p->next=q; q->next=NULL; 该程序段实现的功能是( )
A、删除尾结点
B、尾结点成为首结点
C、删除首结点
D、首结点成为尾结点
在一个设有头指针和尾指针的单链表中,执行删除该单链表中最后一个元素的操作与链表的长度无关。()【中南大学2003一、2(1分)】
违法和不良信息举报电话:0731-85129285 举报/反馈/投诉邮箱:2861363944@qq.com