線性表的順序表示
線性表的特點 是:表的物理結構是順序的,元素的 儲存也是有順序的。
要學會使用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外,每乙個...