C 資料結構 線性表之順序表

2022-03-11 12:58:06 字數 2908 閱讀 3107

1 順序表 adt

+ status initlist(seqlist &l)初始化順序表

+ void printlist(seqlist l)遍歷順序表

+ int listlength(seqlist l)獲得表長

+ status getelement(seqlist l, int i, elementtype &e)(按位)取值

+ int locateelement(seqlist l, elementtype e)(按值)查詢

+ status listinsert(seqlist &l, int i, elementtype e)(按位)插入

+ status listdelete(seqlist &l, int i)(按位)刪除

2 程式設計實現

2.1 定義基礎資料型別

elementtype (資料元素型別/結構體)

struct elementtype 

bool operator!=(const elementtype b) const

};

status (狀態/列舉型別)

enum status ;

seqlist (順序表/結構體)

#define maxsize_seqlist 100

typedef struct seqlist; // 線性表之順序表

2.2 初始化順序表

status initlist(seqlist &l)

status initlist(seqlist &l) 

l.length = 0;

return ok;

}

2.3 遍歷順序表

void printlist(seqlist l)

void printlist(seqlist l)

printf("\n");

}

2.4 獲得表長

int listlength(seqlist l)

int listlength(seqlist l)

2.5 (按位)取值

status getelement(seqlist l, int i, elementtype &e)

status getelement(seqlist l, int i, elementtype &e)

e = l.elements[ i-1 ]; // 賦值; elements[i-1] 單元儲存的第 i 個資料元素

return ok;

}

2.6 (按值)查詢

int locateelement(seqlist l, elementtype e)

int locateelement(seqlist l, elementtype e)

if(l.length == maxsize_seqlist)

for(int j=l.length; j>=i; j--)

l.elements[i-1] = e; //將新元素 e 放入 第 i 個位置

l.length += 1; //表長 + 1

return ok;

}

2.8 (按位)刪除

status listdelete(seqlist &l, int i)

status listdelete(seqlist &l, int i)

for(int j=i-1; j<=l.length-1; j++)

l.length -= 1;

return ok;

}

3 測試執行(main.cpp)

#include //#include #include using namespace std;

#include "base.h"

#include "seqlist.h"

int main()

執行結果

[seqlist.h#printlist] l.length: 1

[seqlist.h#printlist] l.elements: f

[seqlist.h#printlist] l.length: 2

[seqlist.h#printlist] l.elements: g f

status: 1

[seqlist.h#printlist] l.length: 1

[seqlist.h#printlist] l.elements: f

[base.h#printelementtype] elementtype.data: g

4 參考資料

1 《資料結構(c語言版 第二版)》.嚴蔚敏.李冬梅.吳偉民

資料結構線性表之順序表

純手打順序表相關操作,包括順序表的建立 初始化 輸出 插入 刪除 銷毀等,僅供自己回顧使用,可能會有不對的或者不恰當的地方望大家指正,共同學習。如下 資料結構順序表 include include include define maxsize 100 using namespace std type...

資料結構 線性表之順序表

線性表是包含若干資料元素的乙個線性序列 記為 l a0,ai 1,ai,ai 1 an 1 l為表名,ai 0 i n 1 為資料元素 n為表長,n 0 時,線性表l為非空表,否則為空表。線性表l可用二元組形式描述 l d,r 即線性表l包含資料元素集合d和關係集合r d r 關係符在這裡稱為有序對...

mysql 線性表 資料結構 線性表之順序線性表

public class sequencelist else stringbuilder sb new stringbuilder for int i 0 i size i int len sb.length public class sequencelisttest public static v...