單鏈表基本操作的實現(資料結構)

2021-10-24 23:16:12 字數 2171 閱讀 8663

建立具有10個元素的單鏈表,並能對該錶進行查詢、插入、刪除等基本操作

.cpp檔案字尾名

#include

#include

typedef

int elemtype;

typedef

struct lnode

linknode;

///單鏈表結點型別linknode

//尾插法建立單鏈表

//從一空表開始依次讀取陣列a中元素,生成結點s插入表尾,借用乙個指標r,使其始終指向當前鍊錶的表尾

void

createlist

(linknode *

&l,elemtype a,

int n)

r->next =

null;}

//輸出線性表

void

displist

(linknode *l)

printf

("\n");

}//求線性表的長度

//讓p指向頭結點,n用來累計結點的個數

intlistlength

(linknode *l)

return n;

}//插入資料元素

//找到第i-1個結點由p指向它。若第i-1個結點存在,將值為e的結點(由s指向)插入的p所指結點的後面

bool

listinsert

(linknode *

&l,int i,elemtype e)

if(p==

null

)return

false

;else

}//按元素查詢

intlocateelem

(linknode *l,elemtype e)

if(p==

null

)return0;

else

return i;

}//刪除資料元素

//找到第i-1個結點由p指向它。若第i-1個結點存在,也存在後繼結點(由q指向),則刪除q所指結點

bool

listdelete

(linknode *

&l,int i,elemtype &e)

if(p==

null

)return

false

;else

}int

main

(void

)createlist

(l,a,10)

;printf

("表長:%d\n"

,listlength

(l))

;printf

("linknode中的元素為:");

displist

(l);

printf

("請輸入需要插入元素的位置和值:");

scanf

("%d%d"

,&i,

&e);

listinsert

(l,i,e)

;printf

("表長:%d\n"

,listlength

(l))

;printf

("linknode中的元素為:");

displist

(l);

printf

("請輸入需要查詢的元素值:");

scanf

("%d"

,&e)

;printf

("%d所在的位置是:%d\n"

,e,locateelem

(l,e));

printf

("請輸入需要刪除元素的序號:");

scanf

("%d"

,&i)

;listdelete

(l,i,e)

;printf

("linknode中的元素為:");

displist

(l);

printf

("表長:%d\n"

《資料結構》單鏈表基本操作實現

define ok 1 define error 1 typedef int elemtype typedef int status typedef struct node lnode,linklist 構造空表 status initlist linklist l void creatlist l...

資料結構 單鏈表基本操作

實現單鏈表的初始化,頭插法建表,尾插法建表,查詢元素,插入元素,刪除元素等功能 include using namespace std define elemtype char typedef struct node node,linklist 初始化單鏈表 void initlist linkli...

資料結構 單鏈表基本操作 C 實現

主體使用結構體 類 模板進行實現。1.linklist.h pragma once include using namespace std template class t struct node 結點結構 node t e,node next null template class t class...