資料結構與演算法之順序表

2022-09-10 18:00:21 字數 4215 閱讀 2069

#include

#include

#define maxsize 100

typedef

char elemtype;

typedef

struct list

sqlist;

void

createlist

(sqlist *

&l,elemtype a,

int n)

//建立順序表

/*******************************************

********************************************/

void

initlist

(sqlist *

&l)//初始化順序表

/*******************************************

********************************************/

void

destroylist

(sqlist *

&l)//釋放順序表

/*******************************************

********************************************/

bool listempty

(sqlist *l)

//判空

/*******************************************

********************************************/

intlistlength

(sqlist *l)

//輸出長度

/*******************************************

********************************************/

void

displist

(sqlist *l)

//輸出順序表

/*******************************************

********************************************/

void

getelem

(sqlist *l,

int j)

//求順序表中的某個下標的元素值

}/*******************************************

********************************************/

intlocateelem

(sqlist * l,elemtype e)

//按元素值查詢

else

}/*******************************************

********************************************/

bool listinsert

(sqlist *

&l,int j,elemtype e)

//插入元素

/*******************************************

********************************************/

bool deletelement

(sqlist *

&l,int j,elemtype &e)

//刪除資料元素

/*******************************************

********************************************/

intmain()

;

elemtype e=0;

initlist

(l);

//初始化順序表l

printf

("初始化完成\n");

/*******************************************

********************************************/

createlist

(l,a,5)

;//依次插入a,b,c,d,e

printf

("插入元素後輸出的順序表為:\n");

/*******************************************

********************************************/

displist

(l);

//輸出順序表l

/*******************************************

********************************************/

printf

("此順序表長度為:");

printf

("%d\n"

,listlength

(l))

;//輸出順序表l長度

/*******************************************

********************************************/if(

listempty

(l)==1)

//判斷順序表l是否為空

printf

("不為空\n");

else

printf

("為空\n");

/*******************************************

********************************************/

printf

("順序表的第3個元素為:");

//輸出順序表的第3個元素

getelem

(l,3);

/*******************************************

********************************************/

printf

("元素a的位置為:");

//查詢a的位置

locateelem

(l,'a');

/*******************************************

********************************************/

listinsert

(l,4

,'f');

//在第4個元素位置上插入元素f

printf

("插入元素後的順序表為:\n");

/*******************************************

********************************************/

displist

(l);

//輸出順序表l

/*******************************************

********************************************/

deletelement

(l,3

,e);

//刪除l的第3個元素

/*******************************************

********************************************/

printf

("刪除元素後的順序表為:\n");

displist

(l);

//輸出順序表l

/*******************************************

********************************************/

destroylist

(l);

//釋放順序表l

printf

("釋放順序表");

return0;

}

資料結構與演算法 順序表

python中的list和tuple兩種型別採用了順序表的實現技術,具有前面討論的順序表的所有性質。tuple是不可變型別,即不變的順序表,因此不支援改變其內部狀態的任何操作,而其他方面,則與list的性質類似。python標準型別list就是一種元素個數可變的線性表,可以加入和刪除元素,並在各種操...

Python資料結構與演算法之鍊錶與順序表的對比

鍊錶與順序表的對比 鍊錶失去了順序表隨機讀取的優點,同時鍊錶由於增加了節點的指標域,空間開銷比較大,但對儲存空間的使用要相對靈活。鍊錶與順序表的各種操作複雜度如圖所示 操作鍊錶 順序表訪問元素 o n o 1 在頭部插入 刪除 o 1 o n 在尾部插入 刪除 o n o 1 在中間插入 刪除 o ...

資料結構與演算法(2)順序表

在之前的順序表中,我們使用陣列來儲存資料元素,但是這樣的結構有很大的隱患。在一些情況下,我們無法事先確定資料元素的規模。如果資料元素很少的話,陣列很多空間是浪費的,如果資料元素比較大的話,陣列可能會出現溢位的危險,這比單純的浪費空間要嚴重的多。c語言是不支援動態陣列的,但是我們可以通過指標實現這乙個...