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

2021-09-25 09:14:58 字數 1825 閱讀 6846

無頭單向非迴圈鍊錶:

結構簡單,一般不會單獨用來存資料。

實際中更多的是作為其他資料結構的子結構,如雜湊表、圖的領接等等。

下面,我們來看看無頭單向非迴圈鍊錶增刪查改實現。

#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);

slistnode* buyslistnode(sltdatatype x);

void slistpushfront(slist* plist, sltdatatype x);

void slistpopfront(slist* plist);

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

// 在pos的後面進行插入

void slistinsertafter(slist* pos, sltdatatype x);

void slisteraseafter(slist* pos);

void slistremove(slist* plist, sltdatatype x);

void slistprint(slist* plist);

#endif/*_slist_h_*/

#include"slist.h"

#includeslistnode* buyslistnode(sltdatatype x)//建立結點

res->data = x;

res->next = null;

return res;

}void slistinit(slist* plist)

void slistpushfront(slist* plist, sltdatatype x)//頭插

}void slistpopfront(slist* plist)//頭刪

}void slistinsertafter(slistnode* pos, sltdatatype x)

void slisteraseafter(slistnode* pos)//刪除pos+1位置結點

slistnode* slistfind(slist* plist, sltdatatype x)//查詢指定值

return null;

}void slistremove(slist* plist, sltdatatype x)//刪除值為x的結點

if (plist->head == null)

slistnode* ph = plist->head;

slistnode* pt = ph->next;

while (null != pt)

pt = pt->next;

ph = ph->next; }}

void slistprint(slist* plist)

printf("\n");

}void slistdestory(slist* plist)

plist->head = null;

}}

#include"slist.h"

int main()

無頭單向非迴圈鍊錶

首先建立乙個標頭檔案存放所需要的函式功能的宣告slist.h ifndef slist h define slist h include include include include typedef int sltdatatype typedef struct slistnodeslistnode...

無頭單向非鍊錶的實現

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

單向迴圈鍊錶的增刪改查的實現

package datastructures.list public class mysinglecircularnode 在指定的結點後面加入新結點 param element 指定結點元素 param node 新結點 public void insert int element,mysingl...