我想要變得更熟練一點。我觀看了幾個視頻並閱讀了多個論壇帖子,但我仍然遇到問題。我想從一個簡單的鏈表開始。但是,用我目前的代碼只打印最後一個值。如果有人能向我解釋我做錯了什麼,我會很感激。另外,我通常在main.cpp文件中定義所有的函數。但是,它不會讓我這樣做我的鏈表。另外,在main.cpp文件中定義所有功能是一種好習慣還是我應該打破的習慣?鏈接列表只顯示最後輸入的值
在此先感謝:)。 下面是我的LinkedList文件:
#pragma once
#include <iostream>
using namespace std;
class LinkedList {
struct node {
int data;
node *next;
};
public:
LinkedList() {
head = NULL;
}
node *newNode;
node *temp;
node *head;
void insertData(int value) {
newNode = new node;
newNode->data = value;
temp = newNode;
head = newNode;
temp->next = newNode;
temp = temp->next;
newNode->next = NULL;
}
void printList() {
node *print;
print = head;
while (print != NULL) {
cout << print->data;
print = print->next;
}
}
};
這裏是我的main.cpp文件
#include <iostream>
#include "LinkedList.h"
using namespace std;
int main() {
LinkedList list;
list.insertData(1);
list.insertData(2);
list.insertData(3);
list.printList();
system("pause");
return 0;
}
如何插入節點:創建一個新節點,將其下一個指針設置爲當前頭,將當前頭設置爲新節點。就這麼簡單。 'insertData'中的所有分配是怎麼回事? – user657267
我觀看了鏈接列表上的視頻,並且視頻中的人不停地說使用臨時指針將列表鏈接在一起。他有一個指向新節點的指針,頭部指針和一個臨時指針。它仍然無法正確顯示。我的打印功能看起來是否正確? – starlight
他可能是指'node * temp = new node; temp-> data = value; temp-> next = head; head = temp;' – user657267