-2
我试着自己创建链表程序。该程序编译没有错误,但我没有得到正确的结果。
我曾尝试过GCC和TURBO C++。C++链表程序打印最后一个数据项n次
#include<iostream>
#include<cstdio>
using namespace std;
struct node
{
char *name;
node *link;
};
int main()
{
int n, i;
node *start = NULL, *newnode, *temp;
char nam[10];
cout<<"Enter number of people:";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"Enter name:";
fflush(stdin);
gets(nam);
if(start==NULL)
newnode = start = new node;
else
newnode = newnode->link = new node;
newnode->link = NULL;
newnode->name = nam;
}
cout<<"\n\tNames:";
temp = start;
while(temp!=NULL)
{
cout<<"\n"<<temp->name;
temp = temp->link;
}
delete newnode;
delete start;
delete temp;
return 0;
}
输出是:
Output ScreenShot
Enter number of people:4
Enter name:qwerty
Enter name:uiop
Enter name:asdf
Enter name:zxcv
Names:
zxcv
zxcv
zxcv
zxcv
--------------------------------
Process exited after 15.85 seconds with return value 0
按任意键继续。 。 。
首先(这与您的问题无关),但从技术上讲,在仅输入C'FILE'流中调用'fflush'是*未定义行为*。其次(也是无关的),永远不会***使用'gets'。它已经过时了很长一段时间,已经从C和C++标准中删除了,并且通常是*危险的!* –
请编辑您的文章和调试会话的结果。 Turbo C++和Borland C++有很好的调试器。您可能还想在单步执行代码时绘制(绘制)列表。 –
至于你的问题,你*知道'std :: string'?因为这会解决问题(再加上你需要使用比'gets'更安全,更好的功能)。想一会儿节点'name'指针指向的地方? ***节点'名称'指针的所有*** ... –