鍊錶1 單向鍊錶

2022-04-03 08:22:37 字數 2147 閱讀 1916

鍊錶中最簡單的一種是單向鍊錶,它包含兩個域,乙個資料域和乙個指標域,指標域指向鍊錶中的下乙個節點,最後乙個節點的指標域指向乙個空值

鍊錶最基本的結構是在每個節點儲存資料和到下乙個節點的位址,在最後乙個節點儲存乙個特殊的結束標記,另外在乙個固定的位置儲存指向第乙個節點的指標,有的時候也會同時儲存指向最後乙個節點的指標。一般查詢乙個節點的時候需要從第乙個節點開始每次訪問下乙個節點,一直訪問到需要的位置。但是也可以提前把乙個節點的位置另外儲存起來,然後直接訪問。當然如果只是訪問資料就沒必要了,不如在鍊錶上儲存指向實際資料的指標。這樣一般是為了訪問鍊錶中的下乙個或者前乙個(需要儲存反向的指標,見下面的雙向鍊錶)節點。

接下來我將以**的形式展示單向鍊錶的基本操作:

#include using namespace std;

struct node ;

node(){};

};class linklist;

void linklist::create()

void linklist::inserthead(node* p)

void linklist::inserttail(node* p)

head->value++;

}node* linklist::findbyindex(int index)

int i = 0;

while(p)

} return nullptr;

}node* linklist::findbyvalue(int value)

return nullptr;

}int linklist::getlength()

void linklist::deletebyindex(int index)

}void linklist::deletebyvalueonce(int value)

p = p->next;

q = q->next;

} if(!flag) cout << "value is not exist in this list";

}void linklist::deletebyvalueall(int value)else

} if(!flag) cout << "value is not exist in this list";

}void linklist::editbyindex(int index, int value)

}void linklist::print()

cout << endl;

}void printanswer(linklist linklist)

int main()

cout << "頭插法結果:";

printanswer(linklist);

cout << "尾插乙個數:";

cin >> num;

linklist.inserttail(new node(num));

cout << "尾插法結果:";

printanswer(linklist);

cout << "想刪除第幾個:";

cin >> num;

linklist.deletebyindex(num);

cout << "刪除結果:";

printanswer(linklist);

cout << "輸入你想刪除值為多少的節點(只刪除首個):";

cin >> num;

linklist.deletebyvalueonce(num);

cout << "刪除結果:";

printanswer(linklist);

cout << "輸入你想刪除值為多少的節點(所有的):";

cin >> num;

linklist.deletebyvalueall(num);

cout << "刪除結果:";

printanswer(linklist);

int replace;

cout << "輸入你想修改第幾個節點並改成值為多少:";

cin >> num >> replace;

linklist.editbyindex(num, replace);

cout << "修改結果:";

printanswer(linklist);

}

單向鍊錶 1

單向鍊錶的排序 查詢 插入 刪除 使用單向鍊錶 按學生成績從高到低的順序儲存學生資訊 從中刪除不及格學生的資訊 include include include include using namespace std struct student 構建鍊錶的單節點資料元素 typedef studen...

1 單向鍊錶

鍊錶是一種線性的鏈式儲存結構,可以不用事先確定節點的個數,插入刪除節點需要的操作量較少。但只能通過遍歷鍊錶來查詢想找的節點。每個節點用乙個結構體表示,節點結構體內分成兩部分 資料域 指標域 指標域用來指向下乙個節點 資料域存放資料。單向鍊錶需要維護乙個頭節點,之後所有的操作都需要通過頭節點。定義乙個...

鍊錶 1 之單向動態鍊錶

題目 多函式程式設計 struct word char c 20 struct word next 函式1 一輸入一串單詞字串,假設每個單詞長度不超過19個字元,用空格隔開,把每個單詞資料存在乙個單向動態鍊錶 簡稱單詞鍊錶 裡的乙個節點。struct word create word list 生成...