1.順序表插入操作的基本步驟:要在順序表中第 i 個資料元素之前插入一 個資料元素 x,首先要判斷插入位置 i 是否合法,假設線性表的長為 n,則 i 的 合法值範圍: 1≤i≤n+1,若是合法位置,就再判斷順序表否滿,如果滿,則增 加空間或結束操作,如果不滿,則將第 i 個資料元素及其之後的所有資料元素都 後移乙個位置,此時第 i 個位置已經騰空,再將待插入的資料元素 x 插入到該位 置上,最後將線性表的長增加 1。
2.順序表刪除操作的基本步驟:要刪除順序表中第 i 個資料元素,首先仍然 要判斷 i 的合法性, i 的合法範圍是 1≤i≤n,若是合法位置,則將第 i 個資料 元素之後的所有資料都前移乙個位置,最將線性表長減 1。
3.順序表查詢操作的基本步驟:要在順序表中查詢乙個給定值的資料元素 則可以採用順序查詢的方法,從表中第 1 個資料元素開始依次將值與給定值進行 比較,若相等則返回該資料元素在順序表中的位置,否則返回 0 值。
線性表的動態分配順序儲存結構—c語言實現
#define maxsize 50
//儲存空間的分配量
typedef char elemtype;
typedef struct
sqlist;
動態建立乙個空順序表的演算法:
void
initlist
(sqlist *
&l)//初始化線性表
線性表的插入:
status sqlist_insert
(sqlist &l,
int i,elemtype x)
/*在順序表l中第i個元素前插入新元素x*/
線性表的刪除:
status sqlist_delete
(sqlist &l,
int i,elemtype &e)
/*在順序表l中刪除第i個元素*
線性表元素的查詢:
int
locateelem
(sqlist *l, elemtype e)
//按元素值查詢
輸出線性表:
void
displist
(sqlist *l)
//輸出線性表
輸出線性表第i個元素的值:
bool getelem
(sqlist *l,
int i,elemtype &e)
//求線性表中某個資料元素值
編寫乙個程式,實現順序表的各種基本運算(假設順序表的元素型別為 char), 並在此基礎上設計乙個主程式完成如下功能:
(1)初始化順序表 l;
(2)依次採用尾插法插入 a、b、c、d、e 元素;
(3)輸出順序表 l;
(4)輸出順序表 l 的長度;
(5)判斷順序表 l 是否為空;
(6)輸出順序表 l 的第 3 個元素;
(7)輸出元素 a 的位置
(8)在第 4 個元素位置上插入 f 元素
(9)輸出順序表 l;
(10)刪除 l 的第 3 個元素;
(11)輸出順序表 l;
(12)釋放順序表 l。
typedef
char elemtype;
typedef
struct
sqlist;
void
initlist
(sqlist *
&l);
void
destroylist
(sqlist *l)
;bool listempty
(sqlist *l)
;int
listlength
(sqlist *l)
;void
displist
(sqlist *l)
;bool getelem
(sqlist *l,
int i,elemtype &e)
;int
locateelem
(sqlist *l, elemtype e)
;bool listinsert
(sqlist *
&l,int i,elemtype e)
;bool listdelete
(sqlist *
&l,int i,elemtype &e)
;void
initlist
(sqlist *
&l)//初始化線性表
void
destroylist
(sqlist *l)
//銷毀線性表
bool listempty
(sqlist *l)
//判線性表是否為空表
intlistlength
(sqlist *l)
//求線性表的長度
void
displist
(sqlist *l)
//輸出線性表
bool getelem
(sqlist *l,
int i,elemtype &e)
//求線性表中某個資料元素值
intlocateelem
(sqlist *l, elemtype e)
//按元素值查詢
bool listinsert
(sqlist *
&l,int i,elemtype e)
//插入資料元素
bool listdelete
(sqlist *
&l,int i,elemtype &e)
//刪除資料元素
intmain()
大一新生必看,自學必看,里昂詳解資料結構之鍊錶
1 鍊錶建立操作的基本步驟 鍊錶是乙個動態的結構,它不需要分配空間,因此建立鍊錶的過程是乙個結點 逐個插入 的過程。先建立乙個只含頭結點的空單鏈表,然後依次生成新結點,再不斷地將其插入到鍊錶的頭部或尾部,分別稱其為 頭插法 和 尾插法 2 鍊錶查詢操作的基本步驟 因煉表是一種 順序訪問 的結構,則要...
大一新生必看,自學必看,里昂詳解資料結構之堆疊
堆疊,一種先進後出的線性表。僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。順序棧結...
大一新生該學的
看到老師讓給新入學學弟們點經驗。1.別為了適用而學習。因為你暫時還不知道你以後的職業,還不能規劃自己的職業道路。所以一定要面廣,也不要太鑽研,已理解和了解為主。2.鍛鍊自己的能力,提高個人素質。這是你終身適用的。在以後的道理中,你更主要的是跟人在打交道。3.經歷大學該經歷的。去看看10個或100大學...