元素的獲取
元素的插入
元素的刪除
完整**
在學習線性表的順序儲存結構過程中,typedef了兩個新的結構體,其中乙個為指標形式的命名方式,在查閱資料後才明白這種寫法。本文同時針對順序線性表的元素獲取、元素插入以及元素刪除做了詳細的注釋,在此寫下以備不時之需。
#define maxsize 20
typedef
int elemtype;
typedef
struct
sqlist,
*psqlist;
//typedef 了兩個新的資料型別(結構體),其中乙個是指標方式的名字。
順序儲存結構三個屬性:
儲存空間起始位置:陣列data,他的儲存位置就是儲存空間的儲存位置。
線性表的最大儲存容量:陣列長度maxsize。
線性表的當前長度:length。
關於「線性表的長度」和「陣列的長度」:線性表的當前長度表示的是線性表中元素的個數,會隨著線性表的插入和刪除隨之改變;而陣列的長度是存放線性表的儲存空間長度。線性表的長度應該小於或者等於陣列的長度。
sqlist l =,0
};//sqlist 宣告的l是乙個實體,宣告了就已經有儲存空間了。
psqlist pl =
&l;//psqlist 宣告的pl是乙個指標(但這裡不用加*號,因為psqlist已經被指定為指標),它可以指向乙個struct的實體。
l.length =10;
//l的元素訪問方式,實體方式
pl->length =10;
//pl的元素訪問方式,指標方式
總結:結構體名字去定義宣告的變數是乙個真正的變數,它在記憶體中分配有自己的儲存空間;而用指標形式定義的變數是乙個指標,使用的時候給它賦予乙個結構體變數的位址。參考。
結構體變數直接訪問使用實體方式,用「.」;
結構體指標變數訪問使用指標方式,用「->」;
/*
功能:元素的獲取
說明:獲取順序線性表l中第i個元素,通過e返回其值
*/status getelem
(sqlist *l,
int i, elemtype *e)
/*
功能:元素的插入
說明:向順序線性表l中插入乙個元素e,l的長度加1
*/status listinsert
(sqlist *l,
int i, elemtype e)
} l->data[i -1]
= e;
//插入新的元素
l->length++
;//表的長度加1
return ok;
}
/*
功能:元素的刪除
說明:刪除順序線性表l的第i個元素,並用e返回其值,並且l的長度減1
*/status listdelete
(psqlist l,
int i, elemtype *e)
} l->length--
;//l的長度減1
return ok;
}
#include
#define maxsize 20
#define ok 1
#define error 0
typedef
int status;
typedef
int elemtype;
typedef
struct
sqlist,
*psqlist;
//typedef 了兩個新的資料型別(結構體),其中乙個是指標方式的名字。
/* 功能:元素的獲取
說明:獲取順序線性表l中第i個元素,通過e返回其值
*/status getelem
(sqlist *l,
int i, elemtype *e)
/* 功能:元素的插入
說明:向順序線性表l中插入乙個元素e,l的長度加1
*/status listinsert
(sqlist *l,
int i, elemtype e)
} l->data[i -1]
= e;
//插入新的元素
l->length++
;//表的長度加1
return ok;}/*
功能:元素的刪除
說明:刪除順序線性表l的第i個元素,並用e返回其值,並且l的長度減1
*/status listdelete
(psqlist l,
int i, elemtype *e)
} l->length--
;//l的長度減1
return ok;
}int
main
(void),
0};//sqlist 宣告的l是乙個實體,宣告了就已經有儲存空間了。
psqlist pl =
&l;//psqlist 宣告的pl是乙個指標(但這裡不用加*號,因為psqlist已經被指定為指標),它可以指向乙個struct的實體。
l.length =10;
//l的元素訪問方式,實體方式
pl->length =10;
//pl的元素訪問方式,指標方式
status s =0;
int i =2;
elemtype get_elem =0;
elemtype insert_elem =20;
elemtype *e =
&get_elem;
s =listinsert
(pl, i, insert_elem)
;//在第2個元素位置插入新元素20,返回結果
if(s)
//如果插入成功則讀取第2個元素
printf
("--------\n");
s =listdelete
(pl, i, e)
;//刪除第2個元素,返回結果
if(s)
//如果刪除成功則讀取第2個元素
線性表的順序儲存 線性表的順序儲存結構
1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...
線性表 線性表的順序儲存結構
線性表的順序儲存結構 線性結構是乙個資料元素的有序 次序 集。集合中必存在唯一的乙個 第一元素 集合中必存在唯一的乙個 最後元素 除最後元素外,均有唯一的後繼 除第一元素外,均有唯一的前驅。adt list 資料關係 r1 adt list 容易混的概念 引用符號 和引用型操作沒有關係 加工型操作 ...
線性表 線性表的順序儲存結構
include include using namespace std define ok 1 define error 0 define list init size 100 define listincrement 10 typedef int status typedef int elemty...