/
*順序表 陣列a[i],有乙個基址a 相當於&a[0],還有下標i,代表第i 個元素,
*陣列的最大容量,假定宣告乙個陣列為a[10],則該陣列的容量為10
化為指標形式 a[i] = (a+i),就相當於*
*要注意的是a是乙個常量,它代表的是陣列的首位址,是不可以發生變化的
*關於陣列的擴容,從新給陣列分配空間始終在原有的基址上進行操作
*陣列元素的插入和刪除操作,就要相應地將插入位置元素的後面的元素前移
/
#include
#include
#define list_init_size 10
#define list_increment 2
typedef int elemtype;
typedef struct list
sqlist;
//////
///線性表的初始化
void initlist(sqlist &s)
//////
//////
////銷毀線性表
void destorylist(sqlist &s)
/////////
///////向線性表中插入元素
q = s.elem + i - 1; //q為要插入的位置,因為陣列的下標從0開始,所以減一
for(p = s.elem+s.length-1 ; p >= q ; --p) //從線性表的最後乙個元素位置遍歷到插入位置的後乙個
*(p+1) = *p; //將元素後移一位
/*for(int j = s.length-1 ; j >= i ; --j) //另一種移位法
*(s.elem+j+1) = *(s.elem+j);*/
*q = e; //插入e
s.length ++;
return
1;}
//////
//////
/////刪除線性表中的元素
int listdelete(sqlist &s,int i)
int main()
; int i;
initlist(s);
for(i=0;i<10;i++) //向線性表中加入10個元素
listinsert(s,i+1,a[i]);
for(i=0;i<10;i++) //列印線性表中的每個元素
printf("%d ",*(s.elem+i));
printf("\n");
listdelete(s,2); //刪除線性表第二個元素
線性表之順序表操作
求後繼是指 輸入乙個元素值 而不是位置 求該元素在順序表中的直接後繼元素值。注意 對每個功能進行測試時,要求把不合法的情況也測試一下。具體見下面的測試用例。3 驗收 測試用例 通過選單呼叫各個操作,測試點 沒有初始化前進行其他操作,程式是否能控制住 即,如果沒有初始化線性表,其他的功能是無法正常進行...
線性表之順序表增強操作
一,線性表的一些增強操作 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...