用C语言创建循环链表头结点怎么设啊,还有循环链表中末尾还需要加null吗
这样写对吗
typedef struct Node{
int data;
struct Node *llink;
struct Node *rlink;
}Node, *dll;
dll creat_dll()
{
Node *head,*p;
head=(Node *)malloc(sizeof(Node)) ;
head->llink=head;
head->rlink=head;
int x,i;
printf("请输入节点的值:");
for(i=0;i<5;i++)
{
scanf("%d",&x);
p=(Node *)malloc(sizeof(Node));
p->data=x;
p->llink=head;
head->rlink=p;
p->rlink=head;
head->llink=p;
printf("%d ",p->data);
head=head->rlink;
}
}
最后一个节点指向第一个这叫循环链表.双向链表只是每个元素都有2个指针.指向他的前后元素.
就是要创建循环链表,我这样写的话行吗 ,感觉头结点那里有点问题啊
头结点只是一个指针,循环链表最后一个节点指向头结点