單鏈表的定義以及基本操作 超詳細!

2021-10-07 12:40:33 字數 1766 閱讀 4915

#include

#include

//單鏈表結點的定義

typedef

struct lnode

node;

typedef node linklist;

//求單鏈表的長度

intlen_list

(linklist l)

return len;

}//頭插法建立單鏈表

void

head_insert

(linklist* plist)

return;}

//尾插法建立單鏈表

void

tail_insert

(linklist* plist)

return;}

//在單鏈表插入某個元素

void

insert_list

(linklist* plist,

int i,

int e)

node *q =

(node*

)malloc

(sizeof

(node));

//尋找該插入的位置的前乙個節點

q = plist;

int j=1;

while

(j < i)

node *p =

(node*

)malloc

(sizeof

(node));

//新插入的結點

p->data = e;

//賦值

p->next = q->next;

//後邊連上

q->next = p;

//前邊連上

return;}

//刪除單鏈表第幾個元素

void

delete_list

(linklist* plist,

int i)

node* p = plist;

int j=1;

while

(j < i)

node* q = p->next;

//指向被刪除的元素,待會釋放它

p->next = p->next->next;

//邏輯上刪除

free

(q);

//物理上刪除

return;}

//查詢單鏈表某個位置上的元素

void

search_element

(linklist l,

int x)

node* pnode =

(node*

)malloc

(sizeof

(node));

pnode =

&l;for

(int i=

1; i<=x; i++

)printf

("the element of this place is:%d"

, pnode->data)

;return;}

//查詢某個元素在單鏈表的位置

void

search_placement

(linklist l,

int e)

else}}

//列印單鏈表

void

print_list

(linklist l)

printf

("\n");

}int

main()

棧 順序棧的定義以及基本操作 超詳細!

include include 順序儲存,用靜態陣列實現,需要記錄棧頂指標 定義 初始化 創 增 進棧 刪 出棧 判空 查 讀棧頂元素 銷 define maxsize 50 棧中元素的最大個數 順序表結構定義 struct sqstack 初始化順序棧 void initialize stack ...

佇列 鏈式儲存佇列的定義以及基本操作 超詳細!

include include 帶頭結點的鏈隊 結點的結構體定義 typedef struct linknode linknode 鏈隊的結構體定義 typedef struct linkqueue 初始化 創 void initialize queue linkqueue q 判空 void em...

詳細的單鏈表基本操作C C 實現

include include include includeusing namespace std typedef struct snode lnode int listinsert lnode l,int i,int e 結點插入指定位置 if p j i 1 如果不存在指定位置 void cr...