《資料結構》進行曲(之一) 線性表的順序表示

2021-07-10 02:03:44 字數 2741 閱讀 1902

線性表的順序表示

線性表的特點 是:表的物理結構是順序的,元素的 儲存也是有順序的。

要學會使用c語言描述和具體實現順序表定義和操作的相關演算法。

//--------順序表的儲存結構----

#define max 100 //順序表可能達到的最大長度

typedef struct sqsqlist;

/*elemtype是乙個抽象資料型別 ,可以是int,float,double等或者是自定義的資料型別。

在實際使用是可以使用int,float等來代替;

*/

/*

順序表的初始化:

1.為順序表動態分配乙個預定義大小的陣列空間,使用elem指向這段空間的基位址。

2.將表的當前長度設為0.

*///描述:

status initsqlist_sq(sqlist &l)

//順序表的查詢

/*在表l中查詢與指定值e相等的元素

遍歷順序表, 將表中的元素與e表示,若l.elem[i]==e,則返回該元素的「位序」i+1

查詢失敗返回0

*/ int locationelem_sq(sqlist l,elemtype e)

l.elem[i-1]=e;//將新元素插入第i個位置

++l.length;//表長加1

return ok;

}

//順序表的刪除

status deletesqlist(sqlist &l,int i,elemtype e)

--l.length;//表長減1

return ok;

}

具體實現如下:
#include#define max 100

typedef struct sqsqlist;

/*初始化表

*/int initsqlist(sqlist &l)else}/*

判斷表是否為空

*/int listempty(sqlist l)else if(l.length==0)}/*

計算表長

*/int listlength(sqlist l)

/*輸入操作

*/ void input(sqlist &l)else

} printf("輸入結束!\n"); }/*

輸出線性表中的所有值

*/void output(sqlist l)else if(!listempty(l))else}/*

2.查詢某個元素在表中的位置

*/void selectbyvalue(sqlist l,int value)elseelse

l.elem[location-1]=value;

++l.length;

printf("插入成功!\n"); }}

/*刪除操作

刪除指定位置的元素,表長減1

location及其後的元素的位置向前移動1個

*/void listdelete(sqlist &l,int location) else

--l.length;

printf("刪除成功!\n"); }}

int main()else

break;

case 2:

input(l);

break;

case 3:

output(l);

break;

case 4:

int location,value;

printf("請輸入插入的位置和插入元素的數值:\n");

scanf("%d %d",&location,&value);

listinsert(l,location,value);

printf("插入後的表是:\n");

output(l);

break;

case 5:

printf("請輸入要刪除的元素在表中的位置:\n");

int location1;

scanf("%d",&location1);

listdelete(l,location1);

printf("刪除後的表為:\n");

output(l);

break;

case 6:

printf("1.查詢指定元素的前驅\n");

printf("2.查詢指定元素的後繼\n");

printf("3.按序號查詢某個元素的值\n");

printf("4.按值查詢某個元素的位置\n");

printf("請選擇:\n");

int choose;

scanf("%d",&choose);

switch(choose)

break;

case 0:

printf("退出成功!\n");

資料結構 一 線性表

一 線性表的定義 線性結構的特點是 在資料元素的非空有限集中,1 存在唯一的乙個被成為 第乙個 的資料元素 2 存在唯一的乙個被成為 最後乙個 的資料元素 3 除了第乙個之外,其他的元素均只有乙個前驅,除了最後乙個以外,其他的元素均只有乙個後繼 線性表是最常用且最簡單的一種資料結構,乙個線性表是n個...

資料結構學習(一)線性表 順序表

線性表定義 線性表是由n個性質相同的資料元素組成的有序序列,n代表線性表長度。線性表內部節點都有且只有乙個直接前驅和直接後驅。eg 字串 pomme 構成線性表 p,o,m,m,e 根據線性表內的儲存形式可分為 順序表 和 鍊錶 兩種型別。1.1 順序表概念 用一組位址連續的儲存單元依次儲存各元素。...

資料結構筆記(一) 線性表(順序表 鍊錶)

資料結構筆記 一 線性表 線性表就是乙個一維的表,其中各個元素之間是一對一的。對線性表的定義 adt 線性表 list data 線性表的資料物件集合 a1,a2,an 每個元素的型別均為datatype。其中,出來第乙個元素a1外,每乙個元素有且只有乙個直接前驅元素,出來最後乙個元素an外,每乙個...