C 實現單鏈表的操作

2021-09-26 20:16:37 字數 2303 閱讀 5291

1.【定義】

單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成:元素(資料元素的映象) + 指標(指示後繼元素儲存位置),元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。

2.【示例**】

singlylinkedlist.h

#define ok 1

#define error 0

typedef int datatype;

typedef struct node

node(datatype x) :_data(x), _next(null) {}

}lnode, *linklist;

class linkedlist

;

singlylinkedlist.cpp

linkedlist::linkedlist()

void linkedlist::createlinklist(datatype n)

for (int i = 0; i < n; ++i) }

void linkedlist::showlinklist()

linklist p = head; //另指標指向頭結點

cout << endl;

}int linkedlist::getlength()

return count; //返回count的資料

}bool linkedlist::isempty()

return false;

}lnode* linkedlist::find(datatype data)

else

p = p->_next;

} cout << "查無資料" << endl;

return null; //未查找到結果 }}

void linkedlist::insertelematend(datatype data) //尾插

while (p->_next != null)

newnode->_next = p->_next;

p->_next = newnode;

}void linkedlist::insertelematindex(datatype data, int index)

else

ptemp->_next = p->_next; //將新節點插入到指定位置

p->_next = ptemp; }}

void linkedlist::insertelemathead(datatype data)

newnode->_next = p->_next; //將新節點插入到指定位置

p->_next = newnode;

}void linkedlist::deleteelematend()

else

delete p; //刪除尾部節點

p = null;

ptemp->_next = null; }}

void linkedlist::deleteall() //刪除所有資料

if (p->_next == null)

while (p->_next != null) //在頭結點的下乙個節點逐個刪除節點

head->_next = null; //頭結點的下乙個節點指向null

}void linkedlist::deleteelematpoint(datatype data) //刪除指定的資料

if (ptemp == head->_next)

else

p->_next = ptemp->_next; //刪除指定位置的節點

delete ptemp;

ptemp = null; }}

void linkedlist::deleteelemathead() //在頭部刪除節點

else }

linkedlist::~linkedlist()

main.cpp

int main()

3.【測試結果】

c 實現單鏈表的操作

include using namespace std define null 0 class node 節點類 建構函式 node int n 建構函式 node int n,node p void setnum int n 資料和指標兩個屬性分開操作 void setnext node p in...

單鏈表基礎操作C 實現

最近在複習資料結構,就把單鏈表的基礎操作過了一篇 node.h標頭檔案 templatestruct node node t nval 單鏈錶類檔案 include include node.h include using namespace std templateclass singlelink...

C 實現單鏈表的基本操作

結點類 關鍵處在c語言中用指標來指向下乙個節點,c 是物件導向的,用節點類的乙個屬性 next屬性 來指向下乙個節點物件 public class linknode set private linknodenext public linknodenext set endregion public l...