C编程中的链表错误

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

关于c - C编程中的链表错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19922118/

10-09 17:34