對幾種線性表做乙個總結

2021-09-02 10:18:35 字數 2723 閱讀 9386

****************************************=分界線***********************************===

typedef struct 

book;

typedef struct

1、取值操作:getelem(sqlist l, int i , book &e)  注意需要判斷i是不是合理,然後將對應的元素儲存到e

2、查詢操作:locateelem(sqlist l, book e)  查詢成功返回序號,這沒什麼好說的!

3、插入操作:listinsert(sqlist &l, int i, book e)   這裡有幾點要注意:注意i是否合法 1<= i < length+1 ,注意表是否滿了,注意最後表長加一。

4、刪除操作:listdelete( sqlist &l , int i) 注意幾點:判斷i是否合法,最後記得表長減一。

****************************************===分界線***********************************====

typedef struct node

node ,*linklist;

//其實上面的 *linklist 在不在這裡定義都無所謂,因為我們後面可以直接定義。

1、初始化操作:initlist( linklist &l) 生成新節點作為頭結點,next指向null;

2、取值操作: getelem( linklist l, int i,elemtype &e)這裡注意判斷 i 是否合法

4、插入操作:listinsert( linklist &l, int i ,elemtype  e)

5、刪除操作:listdelete( linklist &l,int i )同樣判斷 i 值合法性。

7、前插法操作:createlist_h (linklist &l , int n)

8、後插法操作:createlist_r(linklist &l ,  int n

typedef struct dnode

dnode,*dlinklist;

1、插入操作:listinsert(dlinklist &l , int i, elemtype  e)

2、刪除操作:linkdelete(dlinklist & l,int i )

3、其他操作:只涉及乙個方向的操作與 單鏈表類似不再多講。

****************************************==分界線****************************************

typedef struct 

1、初始化操作: initstack(sqstack &s ) 初始化stacksize  ,  分配陣列空間 , top=base 。

2、入棧操作: push(sqstack &s ,elemtype e),判斷是否滿了,指標加一。

3、出棧操作:pop(sqstack &s,elemtype &e),判斷是否空棧,指標減一。

4、去棧頂元素:gettop(sqstack s),棧非空返回棧頂元素值,棧頂指標保持不變。

****************************************=分界線****************************************==

typedef struct stacknode

stacknode,*linkstack;

1、初始化操作:initstack(linkstack  & s)

2、入棧操作:push(linkstack &s , elemtype  e)

3、出棧操作:pop(linkstack &s,elemtype &e) 注意要判斷是否為空,最後還要釋放空間。

4、取棧頂元素:gettop(linkstack l)  返回棧頂元素的值

***********************************=分界線****************************************====

typedef struct 

sqqueue;

2、求佇列的長度:(sqqueue q),(rear-front+maxsize)%maxsize ;

3、入隊操作: enqueue(sqqueue &q,elemtype e)判斷是否滿了

4、出隊操作:dequeue(sqqueue &q,elemtype  &e),判斷是否為空

5、取隊頭元素:gethead(sqqueue q)

***********************************====分界線****************************************==

typedef struct qnode

qnode,*queueptr;

typedef struct

linkqueue;

1、初始化操作:initqueue(linkqueue &q)

2、入隊操作:enqueue(linkqueue &q,elemtype e)

3、出隊操作:dequeue(linkqueue &q,elemtype  &e)

4、取隊頭元素:gethead(linkqueue q)

總結 線性表的幾種儲存方式

一 順序儲存結構 順序表 順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素。其特點是 記憶體中位址連續,支援隨機查詢,按位查詢演算法的時間複雜度為o 1 按值查詢的平均時間效能是o n 插入刪除操作的平均時間效能是o n 適用於需要大量訪問元素,而沒有或少量增添或刪除元素的程式。順序表的優點...

用棧逆置乙個線性表

include include define stack init size100 define stackincrement10 typedef struct lnodelnode,linklist typedef structsqstack void initlist linklist l vo...

學習總結 線性表一

抽象資料型別線性表的基本運算 initlist l 初始化線性表,構造乙個空的線性表。destroylist l 銷毀線性表,釋放線性表l占用的記憶體空間。listempty l 判斷線性表是否為空表,若l為空表,則返回真,否則返回假。listlength l 求線性表的長度返回l中元素的個數。di...