#include #include #define list_init_size 100;
#define lise_increment 10;
//定義乙個列舉常量,預設no = 0, ok = 1
enum status;
typedef struct sqlist
sqlist;
//順序表的初始化操作,就是為順序表分配乙個預定義大小的陣列空間,
//並將線性表的當前長度設為『0』,意思是當前陣列中有0個元素。
//已經為陣列分配了一定的記憶體空間,只是裡面沒放東西而已。
//實質上,就是定義乙個變長陣列。
//&l是乙個位址,實質上是乙個結構體的首位址,也就是用指標指向結構體首位址代表乙個順序表
status initlist_sq(sqlist &l)
//順序表的插入操作,主要是第n至i(共n-i+1)個元素依次後移動乙個位置
status listinsert_sq(sqlist &l, int i, int e)
int *q;//q為插入位置
q = &(l.elem[i-1]);
for(p=&(l.elem[l.length-1]); p>=q; ++p)
*(p+1) = *p;//插入位置及之後的元素右移動
*q = e;//插入e
++l.length;//元素個數增1
return ok;
}
#include #include #define init_list_size 100
#define listincrement 10
enum status ;
//定義乙個順序表的結構體
typedef struct
sqlist;
status init_sqlist(sqlist &l)
status insert_sqlist(sqlist &l, int i, int e)
int *loc, *p;//loc為插入位置,p為操作指標
loc = &(l.a[i-1]);
for(p = &(l.a[len - 1]); p >= loc; --p)
*(p+1) = *p;//移動元素的操作-
*loc = e;//插入e
++l.len;//表長增1
return ok;
}順序表插入運算步驟總結:
1, 初始化乙個空順序表
2, 判斷插入位置是否合法
3, 若表滿,分配新的空間,已被移動元素後,能在表中騰出位置以供插入
4, 從表尾依次移動元素,在待插入位置騰出乙個空位
5, 插入元素
6, 表長增1.
//在順序表中刪除第i個元素
status delete_sqlist(sqlist &l, int i, int &e)
順序表刪除元素運算總結:
1, 判斷刪除位置是否合法
2, 將操作指標p指向待刪除的元素的儲存位置
3, 將待刪除元素的值取出,複製給e
4, 確定表尾元素的儲存位置。
5, 迴圈處理操作指標p,移動元素,將後一項賦值給前一項,刪除待刪元素
6, 表長減1
//順序表合併
status merge_sqlist(sqlist la, sqlist lb, sqlist &lc)
//lb已經取完,只取la元素的情況下
while(pa <= pa_last)
*pc++ = *pa++;
//la已經取完,只取lb元素的情況下
while(pb <= pb_last)
*pc++ = *pb++;
return ok;
}兩個有序順序表合併的運算總結:
1,先設定兩個操作指標pa,pb,分別指向已有順序表la,lb的首位址。
2,再定義兩個指標pa_last,pb_last,分別指向已有順序表la,lb的表尾位址,
以便於判斷pa,pb是否滑動到la,lb表尾。
3,通過初始化pc指標的方式來定義lc順序表,預先給lc開闢長度為la.len + lb.len的空間。
4,la與lb都沒有取完的情況下,通過比較取得兩個表中元素的較小者,放入lc中。
5,lb已經取完,只取la元素並將其放到lc中。
6,la已經取完,只取lb元素並將其放到lc中。
線性表之順序表操作
求後繼是指 輸入乙個元素值 而不是位置 求該元素在順序表中的直接後繼元素值。注意 對每個功能進行測試時,要求把不合法的情況也測試一下。具體見下面的測試用例。3 驗收 測試用例 通過選單呼叫各個操作,測試點 沒有初始化前進行其他操作,程式是否能控制住 即,如果沒有初始化線性表,其他的功能是無法正常進行...
線性表的基本操作(順序表)
實驗內容 建立順序表,實現求表的長度 遍歷表 查詢 插入和刪除元素 求前驅 求後繼等操作 實驗基本要求 進一步熟悉 turbo c 或者vc 環境 掌握線性表結構的基本操作 include using namespace std include include define maxsize 50 t...
線性表 順序表的基本操作
includeusing namespace std typedef long long ll const ll n 1000000 5 define maxsize 50typedef struct sqlist 基礎操作函式 初始化順序表函式,構造乙個空的順序表 void initlist sq...