資料結構 單向鏈表

來源:互聯網
上載者:User

如圖所示 單項鏈表節點有兩個域:指標域與資料域 定義如下:

typedef int dataType;class node {friend class nodeList;   private:dataType data;   //資料域node* link;      //指標域  一個指向下一個元素的指標};

同時擁有一個節點鏈表用來儲存資料:定義如下

class nodeList {private:node* first;    //前端節點指標public:nodeList() { first = 0; }void add(dataType num);           //從鏈表頭部按順序添加void insertTail(dataType num);    //串連到尾部void mediumInsert(dataType num, int pos);void Delete(dataType num);   //刪除一個值void show();};

通過指標遍曆整個鏈表:

void nodeList::show() {node* p = new node();     p = first;              //指向第一個節點while (p != NULL) {dataType temp = p->data;cout << temp << "   ";p = p->link;    //資料迭代}cout << endl;}


增加一個新的節點:

void nodeList::add(dataType num) {node* newNode = new node();    //建立一個新節點newNode->data = num;           newNode->link = first;     //新節點的指標域指向下一個節點first = newNode;          //新的節點標記為前端節點}


插入到尾部:

void nodeList::insertTail(dataType num) {//新的節點node* newNode = new node();newNode->data = num;//用來遍曆node* p = new node();   p = first;while (p->link != NULL) {p = p->link;}newNode->link = p->link;  //尾部插入法p->link = newNode;}

中間插入和尾部插入沒什麼區別 只是迭代到指定的位置然後進行插入操作

//中插void nodeList::mediumInsert(dataType num, int pos) {node* newNode = new node();newNode->data = num;  node* p = new node();p = first;int k = 1;   //標記節點位置
while (p->link != NULL && k < pos - 1) {p = p->link;k++;}newNode->link = p->link;  p->link = newNode;        }

刪除操作:

void nodeList::Delete(dataType num) {node* p = new node();   //第一個指標node* q = new node();   //第二個指標p = first;q = NULL;if(p == NULL){         return;}if (p->data == num) {   //判斷首個節點是不是要刪除的節點first = first -> link;

                delete p;        //刪除節點return; }else {//開始進行遍曆while (p != NULL) {q = p;         //q = q->link;if (q->data == num) {p->link = q->link;delete q;break;}p = p->link;}}}




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.