順序表的基本運算

2021-07-05 21:06:57 字數 1797 閱讀 1042

#include// malloc()等

#include// null, printf()等

// 函式結果狀態**

#define true 1

#define false 0

#define overflow -2

#define ok 1

#define error 0

typedef int status; // status是函式的型別,其值是函式結果狀態**,如ok等

//-------- 線性表的動態分配順序儲存結構 -----------

#define list_init_size 100 //順序表儲存空間初始尺寸

#define list_increment 10 //順序表儲存空間分配增量

typedef int elemtype; //順序表元素的資料型別為整數

//儲存結構定義:順序表

typedef struct sqlist;

初始化空順序表l:

//運算1:初始化空順序表l

status initlist(sqlist &l)

銷毀順序表l:

//運算2:銷毀順序表l

void destroylist(sqlist &l)

在順序表l中第i個位置前插入新元素e:

//運算3:在順序表l中第i個位置前插入新元素e

status listinsert(sqlist &l,int i,elemtype e)

刪除l的第i個元素,並用e返回其值:

//運算4:刪除l的第i個元素,並用e返回其值

status listdelete(sqlist &l,int i,elemtype &e)

用e返回l中第i個元素的值:

//運算6:用e返回l中第i個元素的值

status getelem(sqlist l,int i,elemtype &e)

查詢指定值元素位置:

//運算7:查詢指定值元素位置

status equal(elemtype t1,elemtype t2)

int locateelem(sqlist l,elemtype e,status (*compare)(elemtype t1,elemtype t2))

其他:

//--- 插入新元素 ---

for(int j=l.length-1; j>=i-1; j--) l.elem[j+1]=l.elem[j];

l.elem[i-1]=e;

l.length++; //表長度增1

return ok;

}

//輔助函式:顯示順序表元素

//寫法1:

void print(sqlist l)

printf("\n");

}

//寫法2:

//print中不能直接訪問順序表的內部結構,只能通過運算listlength、getelem間接訪問;

void print(sqlist l)

printf("\n");

}

main函式:

void main(void)

順序表的基本運算

問題及 標頭檔案 2015,煙台大學計算機與控制工程學院 完成日期 2015年9月7日 版本 v1.0 問題描述 測試 建立線性表 的演算法createlist,為檢視建表的結果,需要實現 輸出線性表 的演算法displist。要輸出線性表,還要判斷表是否為空,這樣,實現判斷線性表是否為空的演算法l...

順序表的基本運算

順序表的基本運算 以順序表為例 1 目的是要測試 建立線性表 的演算法createlist,為檢視建表的結果,需要實現 輸出線性表 的演算法displist。在研習displist中發現,要輸出線性表,還要判斷表是否為空,這樣,實現判斷線性表是否為空的演算法listempty成為必要。這樣,再加上m...

順序表的基本運算

問題及 2015,煙台大學計算機與控制工程學院 完成日期 2015年9月14日 版本 v1.0 問題描述 運用插入資料元素,刪除資料元素,初始化線性表,銷毀線性表 include include define maxsize 50 maxsize將用於後面定義儲存空間的大小 typedef int ...