線性表之順序表操作

2021-09-28 18:52:41 字數 2457 閱讀 1467

求後繼是指:輸入乙個元素值(而不是位置),求該元素在順序表中的直接後繼元素值。

注意:對每個功能進行測試時,要求把不合法的情況也測試一下。具體見下面的測試用例。

(3)驗收/測試用例

通過選單呼叫各個操作,測試點:

⦁ 沒有初始化前進行其他操作,程式是否能控制住;即,如果沒有初始化線性表,其他的功能是無法正常進行的,如果選擇進行其他操作,要提示先進行初始化;

⦁ 初始化乙個順序表(初始化順序表,是指初始化乙個空的線性表,裡面的元素個數是0);

⦁ 插入資料(位置, 資料),要測插入位置不合法的情況(0,1)、(2,1),正確插入3個資料(1,20)、(1,10)、(3,30);

⦁ 顯示順序表中的資料,螢幕輸出10, 20, 30;

⦁ 判空,螢幕輸出順序表非空;

⦁ 輸出順序表長度,螢幕輸出3;

⦁ 獲取指定位置元素,要測指定位置在【1,3】範圍之外的情況和之內的情況;

⦁ 定位,輸入:40, 輸出:不存在,輸入20,輸出位置為2;

⦁ 求直接前驅,要測求第乙個元素的前驅、不存在順序表中的元素的直接前驅,其他元素的直接前驅;輸入10,輸出:第乙個元素沒有前驅,輸入20,輸出前驅是10,輸入40,輸出該元素不存在;

⦁ 求直接後繼,要測最後乙個元素的後繼、不存在順序表中的元素的直接後繼,其他元素的直接後繼;同上求前驅;

⦁ 刪除,要測位置在【1,3】範圍之外的情況和之內的情況;

⦁ 清空操作後再測長度,判斷是否為空;

⦁ 銷毀順序表,銷毀線性表之後還能不能做插入,刪除等操作,如果選其他操作,就要提示線性表已經銷毀不存在;

⦁ 測試合併操作,第乙個線性表中的元素是(2,3,4,5),第二個線性表中的內容是(1,4,6,7,8,9),合併後的結果,請輸出。

#include

#include

#define list_init 100

#define listincrement 10

#define error 0

#define ok 1

typedef int status ;

typedef int elemtype;

typedef structlist;

void mnue();

status intlist(list &); //1

void destroylist(list &); //2

void clearlist(list &); //3

status listempty (list &p); //4

status listlength(list &p); //5

status getelem(elemtype,list &p); //6

status listlocal(elemtype,list &p); //7

status priorelem(elemtype,list &p); //8

status nextelem(elemtype , list &p); //9

status listinsert(elemtype,status,list &p);//10

void listdelete(elemtype,list &p); //11

void listvisit(list &p); //12

void listsum(list,list,list&); //13

int main()

else if(select>0)

printf(「輸入lb的4個元素:\n」);

for(i=0;i<4;i++)

listsum(la,lb,l);

break; }}

}return 0;

}void mnue()

status intlist(list &p) //1

void destroylist(list &p) //2

void clearlist(list &p) //3

status listempty (list &p)//4

status listlength(list &p)//5

status getelem(elemtype m,list &p)//6

status listlocal(status m,list &p)//7

if(p.length>=p.listsize)

p.listsize+=listincrement;

}p.elem[p.length]=m;

++p.length;

printf(「插入完成,完美,是我心中的大佬。\n」);

return ok;

}void listdelete(elemtype m,list &p)

for(i=pa.length,j=0;i

printf(「合併線性表成功.」);

}

線性表之順序操作

順序表 陣列a i 有乙個基址a 相當於 a 0 還有下標i,代表第i 個元素,陣列的最大容量,假定宣告乙個陣列為a 10 則該陣列的容量為10 化為指標形式 a i a i 就相當於 要注意的是a是乙個常量,它代表的是陣列的首位址,是不可以發生變化的 關於陣列的擴容,從新給陣列分配空間始終在原有的...

線性表之順序表增強操作

一,線性表的一些增強操作 1,合併有序順序表 兩個索引,分別指向兩個順序表的0索引,然後進行相互比較大小,索引前移.需要注意的是,兩個順序表可能會有乙個先遍歷完,所以最後判斷是否要有剩餘未遍歷的 2,刪除某個範圍內的元素 和刪除某個元素思路一致 3,將順序表元素進行重組,小於等於某個value的放在...

線性表之順序表基本操作

sqheader.h ifndef sqheader h included define sqheader h included 順序表的儲存結構 define maxsize 50 typedef char elemtype typedef struct sqlist endif sqheader...