2013-11-12 4 views
-2

Я написал код на 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; 
} 
+3

Форматирование ваш код правильно будет вам около 50% там, и научиться использовать отладчик передаст оставшиеся 50% – mvp

+4

А добавив точное сообщение об ошибке будет получите около 50%. ;) – Zeta

+3

Переполнение стека не является отладчиком. –

ответ

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; 
} 
Смежные вопросы