鍊錶中新增乙個節點和刪除乙個節點

2021-08-13 03:11:57 字數 1169 閱讀 1800

這裡主要記錄單向列表新增和刪除乙個指定位置節點的書寫方法。

首先先建立鍊錶節點資料的基本型別:

#ifndef node_h

#define node_h

#include "person.h"

class node

;#endif // !node_h

接下來建立節點的節本型別:

class list

;#endif

往指定節點新增函式如下所示:

bool list::listinsert(int i, node *pnode)

node *currentnode = m_plist;

for (int k = 0; k < i; k++)

node *newnode = new node;

if (newnode == null)

newnode->data = pnode->data;

newnode->next = currentnode->next; //原本currentnode的下一節點變為了newnode的下乙個節點

currentnode->next = newnode; //newnode成為了currentnode的下一節點

m_ilength++;

return true;

}

刪除指定節點函式:

bool list::listdelete(int i, node *pnode)

node *currentnode = m_plist;

node *currentnodebefore = null;

for (int k = 0; k <= i; k++)

currentnodebefore->next = currentnode->next;

pnode->data = currentnode->data; //取出currentnode的值

delete currentnode;

currentnode = null;

m_ilength--;

return true;

}

刪除鍊錶中的乙個節點002單引數

237請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點。傳入函式的唯一引數為 要被刪除的節點 現有乙個鍊錶 head 4,5,1,9 它可以表示為 鍊錶,函式引數只有乙個待刪節點 刪除節點,都是前乙個節點指向當前節點的後乙個節點,這個題的引數只有當前節點,並沒有煉表頭節點,不是兩個引數 所...

刪除乙個已知節點

delete a node in a list input plisthead the head of list ptobedeleted the node to be deleted void deletenode listnode plisthead,listnode ptobedeleted ...

給定乙個鍊錶,刪除鍊錶的倒數第n個節點,如何實現

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.我們可以使用兩個指標而不是乙個指標。第乙個指標從列表的開頭向前移動 n 1 步,而第二個指標將從列表的開頭出發。現在,這兩個指標被...