#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 ...