1
我試圖按相反順序打印鏈接列表,但是當我運行它時,它不會將其打印出來。它在打印正確的訂單後才停止,並且輸出屏幕在此之後掛起。這裏是我的代碼:反向鏈接列表在使用反向迭代方法時未打印
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node{
int data;
struct node *next;
};
void reverse(struct node*);
void main()
{
struct node *a;
char ch;
struct node *temp;
struct node *temp1;
a=NULL;
clrscr();
do
{
if(a==NULL)
{
temp=(struct node*)malloc(sizeof(struct node));
printf("Enter Data");
scanf("%d",&temp->data);
temp->next=NULL;
a=temp;
}
else
{
temp=(struct node*)malloc(sizeof(struct node));
temp->next=NULL;
printf("Enter data element");
scanf("%d",&temp->data);
temp1=a;
while(temp1->next!=NULL)
{
temp1=temp1->next;
}
temp1->next=temp;
}
printf("Do You Wish to continue");
ch=getch();
}
while(ch=='Y'||ch=='y');
printf("Status of the link list");
temp1=a;
while(temp1!=NULL)
{
printf("%d ",temp1->data);
temp1=temp1->next;
}
reverse(a);
getch();
}
void reverse(struct node *head)
{
struct node *prev,*current,*next,*t;
current=head;
prev=NULL;
while(current!=NULL)
{
next=current;
current->next=prev;
prev=current;
current=next;
}
head=prev;
printf("Displaying in reverse order");
t=head;
while(t!=NULL)
{
printf("%d",t->data);
t=t->next;
}
}
謝謝!
投返回的值瞭解如何使用調試器,以及如何通過線通過您的代碼行的方式執行,同時監測變量的它們的值。 –
'next = current;' - >'next = current-> next;' – BLUEPIXY
@BLUEPIXY謝謝我收到了錯誤 – user6547375