以下是显示我创建的单个循环链表的代码。程序获取值,但显示插入的插入值,直到头部的倒数第二个节点。 插入代码如下 -
if(head==NULL)
{
new_node=(struct list *)malloc(sizeof(struct list));
printf("Enter the data : ");
scanf("%d",&new_node->data);
new_node->next=NULL;
head=new_node;
link=head;
head->next=head;
}
else
{
new_node=(struct list *)malloc(sizeof(struct list));
printf("Enter the data : ");
scanf("%d",&new_node->data);
new_node->next=head;
link->next=new_node;
link=new_node;
}
void display()
{
struct list *link;
link=head;
while(link->next!=head)
{
printf("%d\t",link->data);
link=link->next;
}
答案 0 :(得分:1)
link = head;
do {
printf("%d\t",link->data);
link=link->next;
} while(link!=head);
答案 1 :(得分:0)
按如下方式更改您的代码
while(link->next!=head){
printf("%d\t",link->data);
link=link->next;
}
if(link != null){ //To check weather the link is empty and to print the last node
printf("%d\t",link->data);
}