C 编程中的链表错误



我用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;
}

相关内容

  • 没有找到相关文章

最新更新