****************************************=分界線***********************************===
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...