資料結構初體驗 筆記整理 1線性表

2021-09-29 05:36:59 字數 1911 閱讀 3193

c實現乙個儲存int資料的列表

//列表體定義

typedef

int position;

//自定義型別,用以表示列表中最後乙個有效元素的位置

//typedef int elementtype;//定義資料型別,此處以int型為例,可自行定義為任何型別

typedef

struct lnode //定義結構體

*list;

//定義頭指標

//列表操作方法定義

//**初始化方法

list makeempty()

//初始化乙個空列表

//**查詢元素位置

position find

(list l,elementtype x)*/

while

(i <= l->last && l->data == x)

//遍歷完或找到指定元素時結束遍歷

if(i > l->last)

else

}//**插入元素

bool insert

(list l,elementtype x,position p)

//在列表中p位置插入乙個元素

if(p <

0|| p > l->last +1)

//檢測插入位置合法性,列表為連續排列的元素,不可跳躍

for(i = l->last; l >= p; i--

)//遍歷列表,移動元素,空出插入位置,列表向後增長,因此又後向前逐個後移,直到位置p

l->data[p]

= x;

l->last++

;//元素個數增加一

return true;

}//**刪除元素

bool delete

(list l,position p)

for(i = p +

1; i <= l->last; i++

)//將元素由後向前移動,即可覆蓋指定元素,實現刪除

l->last--

;//元素減一

}

鍊錶

c實現乙個儲存int型資料的單向鍊錶

typedef

struct lnode *ptrtonode;

//定義節點指標

typedef

int elementtype;

//此處以int為例

struct lnode//定義節點結構體

;typedef prttonode position;

//定義節點位置指標

typedef prttonode list;

//定義煉表頭指標

//其實,上面的和下面的定義是一樣的, 之所以那麼麻煩是為了更詳細解釋鍊錶的不同部分,比如頭節點和頭指標,所以實現操作方法的時候我們依然以上面的為標準

/*typedef struct lnode *list;//定義節點指標

typedef int elementtype;//此處以int為例

struct lnode//定義節點結構體;*/

//**查詢

position find

(lsit l,elementype x)

if(p)

//如果找到指定元素, 即p不為null

else

}//**插入(帶頭節點)

bool insert

(list l,elementtype x,position p)*/

if(pre ==

null

)//未找到節點

else

}//** 刪除(帶頭節點)

bool delete

(list l, position p)

else

}

資料結構線性表1

include include include struct arr 定義了乙個資料型別,該資料型別的名字是struct arr void init arr struct arr parr,int length bool insert arr struct arr parr,int pos,int ...

資料結構 線性表1

一 線性表 定義 由零個或多個資料元素組成的有限序列。強調 1 線性表是乙個序列,也就是說元素之間是有先來後到的 2 若元素存在多個,則第乙個元素無前驅,最後乙個元素無後繼,其他元素都有且只有乙個前驅和後繼 3 線性表是有限的,即他能夠處理的元素是有限的 舉列 請問公司的組織架構是否屬於線性關係?答...

資料結構 1 線性表

線性表的順序儲存結構指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。int getelem sqlist l,int i,elemtype e e l.data i 1 return 1 插入演算法思路 1.如果插入的位置不合理,丟擲異常。2.如果線性表的大小大於等於陣列長度,則丟擲異常或動...