回 帖 发 新 帖 刷新版面

主题:关于建立循环链表的问题

循环链表的建立,如下的代码对吗?该代码建立的循环链表有空的头结点吗?尤其是打问号的地方,我有些不懂。本菜鸟初学数据结构,望指教,不胜感激!
typedef struct node
{
    int data;
    struct node *next;
}node;
creatlist(node &L,int n)//创建循环链表并对猴子编号
{
    node *p,*s,*r;
    int i;
    p=&L;
    r=&L;
    p->next=NULL;
    for(i=1;i<=n;i++)//编号
    {
        s=(node *)malloc(sizeof(node));
        s->data=i;
        p->next=s;
        p=s;
    }
    p->next=r->next;//指针回指向表头???
}

回复列表 (共2个回复)

沙发

指向表头应变: 
p->next=r;//指针回指向表头

还有,for循环内最好加一句:
s->next=NULL;//对新结点的next指针初始化一下。。。

板凳

所谓循环就是首尾相连啊,这样的好处就是可以循环查找,以后你做约瑟夫环课设的时候就会知道它的用途

我来回复

您尚未登录,请登录后再回复。点此登录或注册