求後繼是指:輸入乙個元素值(而不是位置),求該元素在順序表中的直接後繼元素值。
注意:對每個功能進行測試時,要求把不合法的情況也測試一下。具體見下面的測試用例。
(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...