下面介紹一下單鏈表,給出了鏈表元素的插入,刪除,顯示函數(shù),并且給出明確注釋。
#include<iostream>#include<Windows.h>using namespace std;struct Node{ int data;//數(shù)據(jù)域 Node *next;//指針域};void PushElement(Node *RootNode,int data);void PopElement(Node *RootNode);void DisplyElement(Node *RootNode);int main(){ Node *RootNode=new Node;//創(chuàng)建根節(jié)點(diǎn) RootNode->next = NULL; //根節(jié)點(diǎn)的指針域初始值為NULL RootNode->data = 0;//根節(jié)點(diǎn)數(shù)據(jù)域?yàn)殒湵泶笮? PushElement(RootNode, 1);//向鏈表中壓入元素 PushElement(RootNode, 2); PushElement(RootNode, 3); PushElement(RootNode, 4); PushElement(RootNode, 5); PushElement(RootNode, 6); PushElement(RootNode, 7); DisplyElement(RootNode);//顯示整個(gè)鏈表 system("pause"); return 0;}void PushElement(Node *RootNode, int data){ Node *NewNode = new Node;//創(chuàng)建新的節(jié)點(diǎn) if (RootNode == NULL)//鏈表為空時(shí) { RootNode->next = NewNode; NewNode->data = data; } else//鏈表不為空 { NewNode->next = RootNode->next; RootNode->next = NewNode; NewNode->data = data; } RootNode->data++;}void DisplyElement(Node *RootNode){ Node *p = RootNode->next; cout << "共" << RootNode->data << "個(gè)元素:"; while (p != NULL) { cout << p->data<<" "; p = p->next;//指向下一個(gè)元素 }}void PopElement(Node *RootNode){ if (RootNode->next == NULL)//鏈表為空,不再彈出 { return; } RootNode->data--; Node *Element2Del = RootNode->next; RootNode->next = Element2Del->next; delete Element2Del;}這里給出的是頭插法,也就是始終在鏈表的頭部插入和刪除元素,但插入順序和輸出順序是相反的,也可以使用尾插法,找到鏈表的最后一個(gè)元素,為提升效率,常用一個(gè)指針指向最后一個(gè)元素。
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注