【悬赏】c语言数据结构问题,循环链表的创建和合并问题,谢谢!

1、书上说“头指针指向最后一个结点”,这个意思是说头指针指向最后一个结点的地址,还是说最后一个节点的next指针域里面存放着头指针head?2、循环链表创建:head=(... 1、书上说“头指针指向最后一个结点”,这个意思是说头指针指向最后一个结点的地址,还是说最后一个节点的next指针域里面存放着头指针head?
2、循环链表创建:
head=(LinkList)malloc(sizeof(LNode));
p=head;
p->next=head;
while(……){
r=(LinkList)malloc(sizeof(LNode));
r->next=head;//(就是说每每新建一个结点,它的next总是赋值为head对吧?)
p->next=r;
p=r;
}
可以如上这么创建吗?

3、循环链表,有两个ha和hb表,要求合并。书上写“仅需修改两个指针的值即可”。
可不可以这样做:
p=ha;ha=hb->next;hb=p;
或者p=hb;hb=ha;ha=p->next;
但是要释放hb的头结点的空间如何实现?是free(hb)还是free(hb->next)?

谢谢_
展开
 我来答
sunyan1112
2012-11-03
知道答主
回答量:9
采纳率:0%
帮助的人:11.5万
展开全部
  1. “头指针指向最后一个节点”的意思是头指针指向最后一个结点的地址。并且最后一个节点的next指针域指向第一个节点。这样的话就能够很快的找到这个链表的尾巴(就是head)和链表的头部(head->next).

  2. 可以  尾插法  用p来标示最后一个节点。

  3. 不可以  ha,hb应该指向的是两个循环链表的最后一个节点吧

    可以这样:p = ha;  ha->next=hb->next;  hb->next=p->next;

    释放hb的头结点是free(hb->next)

     

     

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式