大一新生必看,自學必看,里昂詳解資料結構之線性表

2021-10-23 17:26:17 字數 3157 閱讀 2803

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大學...