下面介紹一下單鏈表,給出了鏈表元素的插入,刪除,顯示函數,并且給出明確注釋。
#include<iostream>#include<Windows.h>using namespace std;struct Node{ int data;//數據域 Node *next;//指針域};void PushElement(Node *RootNode,int data);void PopElement(Node *RootNode);void DisplyElement(Node *RootNode);int main(){ Node *RootNode=new Node;//創建根節點 RootNode->next = NULL; //根節點的指針域初始值為NULL RootNode->data = 0;//根節點數據域為鏈表大小 PushElement(RootNode, 1);//向鏈表中壓入元素 PushElement(RootNode, 2); PushElement(RootNode, 3); PushElement(RootNode, 4); PushElement(RootNode, 5); PushElement(RootNode, 6); PushElement(RootNode, 7); DisplyElement(RootNode);//顯示整個鏈表 system("pause"); return 0;}void PushElement(Node *RootNode, int data){ Node *NewNode = new Node;//創建新的節點 if (RootNode == NULL)//鏈表為空時 { 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 << "個元素:"; while (p != NULL) { cout << p->data<<" "; p = p->next;//指向下一個元素 }}void PopElement(Node *RootNode){ if (RootNode->next == NULL)//鏈表為空,不再彈出 { return; } RootNode->data--; Node *Element2Del = RootNode->next; RootNode->next = Element2Del->next; delete Element2Del;}這里給出的是頭插法,也就是始終在鏈表的頭部插入和刪除元素,但插入順序和輸出順序是相反的,也可以使用尾插法,找到鏈表的最后一個元素,為提升效率,常用一個指針指向最后一個元素。
新聞熱點
疑難解答