無頭單向非迴圈鍊錶

2021-09-24 20:59:43 字數 1791 閱讀 1795

首先建立乙個標頭檔案存放所需要的函式功能的宣告slist.h

#ifndef _slist_h

#define _slist_h

#include #include #include #include typedef int sltdatatype;

typedef struct slistnodeslistnode;

typedef struct slistslist;

//初始化函式

void slistinit(slist* plist);

//釋放開闢的動態記憶體,銷毀函式

void slistdestory(slist* plist);

//頭插

void slistpushfront(slist* plist, sltdatatype x);

//頭刪

void slistpopfront(slist* plist);

//查詢對應資料的鍊錶

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

//在pos位置後面進行插入

void slistinsertafter(slistnode* pos, sltdatatype x);

//在pos位置後面進行刪除

void slisteraseafter(slistnode* pos);

//列印函式

void slistprint(slist* plist);

#endif //_slist_h

建立乙個原始檔slist.c來寫函式功能

#include "slist.h"

//初始化函式

void slistinit(slist* plist)

//銷毀,釋放動態記憶體

void slistdestory(slist* plist)

}//頭插

void slistpushfront(slist* plist, sltdatatype x)

//頭刪

void slistpopfront(slist* plist)

}//列印函式

void slistprint(slist* plist)

printf("null\n");

}//查詢某個資料對應的節點

slistnode* slistfind(slist* plist, sltdatatype x)

} return null;

}//前插示範

void slistinsertfront(slist* plist, sltdatatype x, sltdatatype src)

for (cur = plist->_head; cur->_next; cur = cur->_next) }

newdata->_data = src;

newdata->_next = cur->_next;

cur->_next = newdata;

}//在pos位置後面進行插入

void slistinsertafter(slistnode* pos, sltdatatype x)

//在pos位置後面進行刪除

void slisteraseafter(slistnode* pos)

最後用乙個main.c檔案來進行測試**功能

#include "slist.h"

void listtest()

int main()

無頭單向非鍊錶的實現

節點類 class node 單鏈表 public class mylinedlist 頭插法 public void addfirst int data node.next this head this head node 尾插法 public void addlast int data node...

無頭單向非迴圈鍊錶增刪查改實現

無頭單向非迴圈鍊錶 結構簡單,一般不會單獨用來存資料。實際中更多的是作為其他資料結構的子結構,如雜湊表 圖的領接等等。下面,我們來看看無頭單向非迴圈鍊錶增刪查改實現。ifndef slist h define slist h include include include include 無頭單向非...

無頭單向不迴圈鍊錶和帶頭雙向迴圈鍊錶

無頭單向不迴圈鍊錶 include include slist.h typedef int sltdatetype typedef struct slistnode slistnode 動態申請乙個節點 slistnode buyslistnode sltdatetype x 單鏈表列印 void ...