我已经用C语言编写了代码,但是执行时却出错。
我可以知道如何组合正确的结构吗?请告知,谢谢
输出结果:
Enter integers: 23 12 34 56 78 12
Traversing the list : 23->12->34->56>78->12
Minimum value : 12
Reversing the list: 12->78->56->34->12->23
代码:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
} *head;
void insert_data(int value)
{
struct node *var,*temp;
temp=head;
var=(struct node *)malloc(sizeof(struct node));
var->data=value;
if(head==NULL)
{
head=var;
head->next=NULL;
}
else
{
while(temp->next!=NULL)
{
temp=temp->next;
}
var->next=NULL;
temp->next=var;
}
}
void reverse_list()
{
struct node *temp,*temp1,*var;
temp=head;
var=NULL;
while(temp!=NULL)
{
temp1=var;
var=temp;
temp=temp->next;
var->next=temp1;
}
head=var;
}
void display()
{
struct node *var;
var=head;
printf("\nlist of elments are \n");
while(var!=NULL)
{
printf(" %d ->",var->data);
var=var->next;
}
}
int main()
{
int i,value;
char ch='y';
head=NULL;
printf("\nEnter Integers: ");
scanf("%d",&value);
insert_data(value);
display();
getch();
return 0;
}
最佳答案
无法理解问题,但是您的代码仅要求一个元素。
循环输入更多元素:
int main()
{
int i,value = 0;
char ch='y';
head=NULL;
printf("\nEnter Integers: ");
// here it is
while (value != -1) {
scanf("%d",&value);
insert_data(value);
display();
}
getch();
return 0;
}
关于c - C编程中的链表错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19922118/