嘿傢伙, 我正在爲期中期研究現在正在努力嘗試使用單鏈表創建一個簡單的程序。我想要做的只是在列表中插入「1」,「2」,「3」,「4」並打印出來。請看看下面的代碼:單鏈表C++
#include <iostream>
#include <string>
using namespace std;
class node{
public:
node(int data);
friend class slist;
private:
int data;
node *next;
};
node::node(int data){
data = data;
next = NULL;
}
class slist{
public:
slist(){
head = NULL;
}
void insert(int item);
void output();
private:
node* head;
};
void slist::insert(int item){
node* newnode = new node(item);
if(head == NULL)
{
head = newnode;
}
else
{
newnode->next = head;
head = newnode;
}
}
void slist::output(){
node* p = head;
while (p->next != NULL){
cout << p->data << " ";
p = p->next;
}
cout << p->data << " ";
}
int main(){
slist FINAL;
FINAL.insert(1);
FINAL.insert(2);
FINAL.insert(3);
FINAL.insert(4);
FINAL.output();
return 0;
}
它編譯罰款,但它打印出(我猜)指針而不是實際的數字。誰能告訴我爲什麼?
非常感謝!
非常感謝,這個固定它! – pauliwago 2011-05-17 04:06:29
@paul:或者使用一個初始化列表(應該是這樣),並且可以保持名稱相同。 – GManNickG 2011-05-17 04:15:04
@Gman:+1給初始者;應該這樣說我自己。 – Keith 2011-05-17 04:35:08