線性表之順序操作

2021-07-23 09:07:19 字數 1781 閱讀 5485

/

*順序表 陣列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...