-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'指針指向的地方? ***節點'名稱'指針的所有*** ... –