求助大神
二哈在笑 2018-10-10 07:12:01 #include<iostream>
using namespace std;
struct person
{
char Name[20];
struct person *Next;
};
struct person *creat();
void out(struct person *Head);
int main()
{
struct person *Head;
cout<<"创建一个链表"<<endl;
Head=creat();
out(Head);
return 0;
}
struct person *creat()
{
struct person *Head=NULL;
struct person *End,*New;
New=End=new struct person[1];
char ch;
int i;
cout<<"是否开始输入(y/n)?"<<endl;
cin>>ch;
if(ch=='Y' || ch=='y')
{
for(i=1;ch=='y' || ch=='Y';i++)
{
cout<<"姓名"<<endl;
cin>>New->Name;
if(i=1)
{
New->Next=Head;
Head=New;
End=New;
}
else
{
New->Next=NULL;
End->Next=New;
End=New;
}
New=new struct person[1];
cout<<"是否继续输入(y/n)?"<<endl;
cin>>ch;
}
delete []New;
}
return Head;
}
void out(struct person *Head)
{
struct person *pb=Head;
for(;pb!=NULL;pb=pb->Next)
cout<<"姓名:"<<pb->Name<<endl;
}
这是代码,求解为什么链表输出顺序是倒的;
比如,构造一个链表1->2->3;
输出的结果却是3->2->1。