c 資料結構 順序表

2022-09-06 02:39:06 字數 1777 閱讀 4782

#define ok 1

#define error 0

#define overflow -2

#define list_init_size 100 //

線性表儲存空間的初始分配量

#define list_increment 10 //

線性表儲存空間的分配增量

#include

#include

#include

typedef

struct

sqlist;

//申請結構體變數sqlist ,sqlist作為型別可以宣告新的結構體變數,如:sqlist l,m[34],*n; //

初始化 (構造空的線性表)

initlist_sq(sqlist &l)

struct getelem_sq(sqlist&l,int i, int &e)

e=l.elem[i-1]; //

逐個查詢元素

printf("

查詢的元素為:%d\n\n

",e);

return

ok;};

//在i位置插入元素

listinsert_sq(sqlist&l,int i,int

e)

if(l.length>=l.listsize)

q=&l.elem[i-1]; //

e元素在i處插入

for(p=&(l.elem[l.length-1]);p>=q;--p) //

元素值整體後移

*(p+1)=*p;

*q=e; //

插入e元素

++l.length; //

表長加一

return

ok;}

listdelete_sq(sqlist&l,int i,int &e)

p=&(l.elem[i-1]); //

p為被刪除的元素

e=*p;

printf(

"刪除值為:%d\n\n

",e);

q=l.elem+l.length-1; //

表長減一

for(++p;p<=q;p++) //

刪除元素後 後繼元素整體前移

*(p-1)=*p;

--l.length;

return

ok;}

int creatnewlist(sqlist &l) //

建立列表

printf(

"請輸入%d個資料:\n

",n);

if(n>list_init_size)

for(i=0;i//

將元素逐一寫入列表

//printf("-----------\n");

scanf("

%d",l.elem+i);

l.length=n;

return

ok;}

//逐一列印列表中的元素

int pr(sqlist &l)

else

}return

ok;}

void clearlist(sqlist &l)

void operatemenu()

void

main()

operatemenu();

scanf("%d

",&k);}}

else

}

C 資料結構 順序表

迴圈後面加 是個好行為,不然很容易犯低階錯誤 導致乙個變數的位置放錯了,看了很久沒看出bug 順序表 include includeusing namespace std const int maxsize 25 typedef struct seqlist int main cout endl r...

C 資料結構 順序表

順序表,顧名思義儲存在計算機指定記憶體區域的一塊連續的儲存結構,跟我們一起排隊做廣播體操的那種方式 儲存物理結構 物理記憶體空間上是連續的 儲存邏輯關係 儲存值之間的關係為一對一 使用場景 一般訪問資料量比較大,新增和刪除操作不頻繁的資料 那麼我們這裡實現的語言是用的c 對於線性表的一些特性我們這裡...

C資料結構 順序表

1.定義動態順序表 typedef struct seqlist seqlist 2.順序表基礎功能實現 初始化 void init seqlist p,int capacity 摧毀 void destory seqlist p 擴容 void checkcapacity seqlist p in...