資料結構(二)鍊錶的相關操作

2021-09-13 03:42:58 字數 3524 閱讀 7874

以下是我在學習鍊錶及其相關介面操作時寫的**:

1.函式定義的 .c 檔案

#include

"linkedlist.h"

#include

#include

#include

//1.初始化 / 銷毀

void

llistinit

(llist *llist)

//2.頭插

void

llistpushfront

(llist *llist, lldatatype v)

//3.尾插

void

llistpushback

(llist *llist, lldatatype v)

else

p->next = node;}}

//4.頭刪

void

llistpopfront

(llist *llist)

//5.尾刪

void

llistpopback

(llist *llist)

else

free

(p->next)

;//p指向倒數第二個節點,則p->next指向最後乙個節點

p->next =

null;}

}//6.在pos後面插入

void

llistposafter

(llist *llist, node *pos, lldatatype v)

//7.在pos後刪

llisteraseafter

(llist *llist, node *pos)

//8.按值查詢

node *

llistfind

(llist *llist, lldatatype v)

p = p->next;

}*/for(p = llist->first; p !=

null

; p = p->next)

}return

null;}

//9.按值改

void

llistmodify

(llist *llist, lldatatype v, lldatatype m)

node *p = llist->first;

while

(p->next !=

null

) p = p->next;}}

//10.按值刪除第乙個

void

llistremove

(llist *llist, lldatatype v)

node *p = llist->first;

if(p->value == v)

else

p = p->next;}}

}//11.按值刪除所有

void

llistremoveall

(llist *llist, lldatatype v)

node *p = llist->first;

while

(p->next !=

null

)else}if

(llist->first->value == v)

}//12.鍊錶翻轉

void

llistreverse

(llist *llist)

llist->first = result;

//翻轉成功後將頭結點的位址給 llist->first

}//13.列印

void

llistprint

(const llist* llist)

printf

("\n");

}

2.函式宣告的 .h 標頭檔案

#pragma once

typedef

int lldatatype;

// 鍊錶中的乙個結點

typedef

struct node node,

*nodepointer;

// single list

typedef

struct llist llist;

// 初始化 / 銷毀

void

llistinit

(llist *llist)

;//1.增

//頭插

void

llistpushfront

(llist *llist, lldatatype v)

;//尾插

void

llistpushback

(llist *llist, lldatatype v)

;//在pos後面插入

void

llisposafter

(llist *llist, node *pos, lldatatype v)

;//2.刪

//頭刪

void

llistpopfront

(llist *llist)

;//尾刪

void

llistpopback

(llist *llist)

;//在pos後刪

llisteraseafter

(llist *llist, node *pos)

;//按值刪除第乙個

void

llistremove

(llist *llist, lldatatype v)

;//按值刪除所有

void

llistremoveall

(llist *llist, lldatatype v)

;//3.改

//按值改

void

llistmodify

(llist *llist, lldatatype v, lldatatype m)

;//4.查

//按值查詢

node *

llistfind

(llist *llist, lldatatype v)

;//5.鍊錶翻轉

void

llistreverse

(llist *llist)

;//6.列印

void

llistprint

(const llist* llist)

;

3.主函式 main.c 檔案

/*******************************鍊錶********************************/

#include

"linkedlist.h"

#include

void

test2()

intmain()

資料結構 迴圈鍊錶的相關操作

include include 結點的資料結構 typedef struct nodenode,pnode 迴圈鍊錶的資料結構 typedef struct linklistlinklist,clinklist 初始化迴圈鍊錶 bool initlist clinklist l l head nex...

《資料結構》 「鍊錶的建立等相關操作」

建立鍊錶並遍歷 include using namespace std 定義單鏈表型別 typedef int elemtype typedef struct lnodelnode,linklist 建立乙個鍊錶 void createlist l linklist l,int n 遍歷鍊錶 voi...

資料結構《二》鍊錶的基本操作

因為這學期c 大作業涉及到了鍊錶 棧和佇列,所以這方面知識點記得還比較牢靠,所以先把這些整理下,同時我也會查閱網上相關題目練一下手 本篇主要複習一下鍊錶初始化,頭插法及尾插法輸入,逆置,以及排序 include includeusing namespace std typedef struct no...