實現單鏈表的基礎操作

2021-09-12 20:53:13 字數 2076 閱讀 3174

鍊錶:鍊錶是一種物理儲存結構上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈 接次序實現的 。

下面我們來看看單鏈表的實現:

list.h

#pragma once

#include #include #include #include // 1、無頭單向非迴圈鍊錶增刪查改實現

typedef int sltdatatype;

typedef struct slistnode

slistnode;

typedef struct slist

slist;

void slistinit(slist* plist);

void slistdestory(slist* plist);

slistnode* buyslistnode(sltdatatype x); //建立節點

void slistpushfront(slist* plist, sltdatatype x);

void slistpopfront(slist* plist);

slistnode* slistfind(slist* plist, sltdatatype x);

// 在pos的後面進行插入

void slistinsertafter(slistnode* pos, sltdatatype x);

void slisteraseafter(slist* plist, slistnode* pos);

// 在pos的前面進行插入

void slistinsertfront(slist* plist, slistnode* pos, sltdatatype x);

void slistremove(slist* plist, sltdatatype x);

void slistprint(slist* plist);

void test();

list.c

#include "list.h"

slistnode* buyslistnode(sltdatatype x)

void slistinit(slist* plist)

void slistdestory(slist* plist)

plist->_head = null;

}void slistprint(slist* plist)

}void slistpushfront(slist* plist, sltdatatype x)

void slistpopfront(slist* plist)

slistnode* slistfind(slist* plist, sltdatatype x)

return pos;

}void slistinsertafter(slistnode* pos, sltdatatype x)

void slisteraseafter(slist* plist, slistnode* pos)

while (cur->_next != pos)

cur->_next = pos->_next;

free(pos);

}void slistinsertfront(slist* plist, slistnode* pos, sltdatatype x)

slistnode* cur = plist->_head;

slistnode* newnode = buyslistnode(x);

if (pos == plist->_head)

while (cur->_next != pos)

cur->_next = newnode;

newnode->_next = pos;

}void slistremove(slist* plist, sltdatatype x)

else

}else

}}void test()

main.c

#include "list.h"

int main()

單鏈表基礎操作C 實現

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

單鏈表的基礎操作

單鏈表的基礎操作 包括 查詢 插入 刪除 建立鍊錶等。以下直接用程式進行說明 include malloc free 標頭檔案 include 節點定義 typedef struct node node 查詢第乙個值為x的節點 node serach node phead,int x 在p節點之後進...

單鏈表的基礎實現

單鏈表的基礎實現3 23測試環境 tc2.0 include define len sizeof struct lnode define null 0 typedef int elemtype struct lnode 建立乙個帶空頭結點的單鏈表 struct lnode creatlist tem...