三.**實現
四.小結
線性表的順序儲存結構,指的是一段位址連續的儲存單元依次儲存線性表的資料元素
在c語言中可以用一堆陣列來實現順序儲存結構
儲存空間的起始位置: 陣列node
線性表的最大容量:陣列長度maxsize
線性表的當前長度:length
#define maxsize 20
typedef struct _tag_list
實現思路
判斷線性表是否合法
判斷位置是否合法
直接通過陣列下標的方式獲取下標
char get(list* list, int pos)
return ret;
}實現思路
判斷線性表是否合法
判斷插入位置是否合法
把最後乙個元素到插入位置的元素後移乙個位置
將新元素插入
線性表長度加1
char insert(list* list, char c, int pos)
//把最後乙個元素到插入位置的元素後移乙個位置
for(i = list->length; i> pos;i–)
//將新元素插入
list->node[i] = c;
//list長度加1
list->length++;
}return ret;
}實現思路
判斷線性表是否合法
判斷刪除位置是否合法
取出刪除元素
把刪除元素pos後的元素分別往前移動乙個位置
char delete(list* list, int pos)
//長度減1
list->length–;
}return ret;
}
#ifndef _seqlist_h_
#define _seqlist_h_
typedef
void seqlist;
typedef
void seqlistnode;
seqlist*
seqlist_create
(int capacity)
;void
seqlist_destroy
(seqlist* list)
;void
seqlist_clear
(seqlist* list)
;int
seqlist_length
(seqlist* list)
;int
seqlist_capacity
(seqlist* list)
;int
seqlist_insert
(seqlist* list, seqlistnode* node,
int pos)
;seqlistnode*
seqlist_get
(seqlist* list,
int pos)
;seqlistnode*
seqlist_delete
(seqlist* list,
int pos)
;#endif
#include
#include
#include
"seqlist.h"
typedef
unsigned
int tseqlistnode;
typedef
struct _tag_seqlist
tseqlist;
seqlist*
seqlist_create
(int capacity)
if(ret !=
null
)return ret;
}void
seqlist_destroy
(seqlist* list)
void
seqlist_clear
(seqlist* list)
}int
seqlist_length
(seqlist* list)
return ret;
}int
seqlist_capacity
(seqlist* list)
intseqlist_insert
(seqlist* list, seqlistnode* node,
int pos)
for(i = slist->length; i > pos; i--
)slist->node[i]
=(tseqlistnode)node;
slist->length--;}
return ret;
}seqlistnode*
seqlist_get
(seqlist* list,
int pos)
return ret;
}seqlistnode*
seqlist_delete
(seqlist* list,
int pos)
slist->length--;}
}
#include
#include
#include
"seqlist.h"
intmain
(int argc,
char
*ar**)
printf
("\n");
while
(seqlist_length
(list)
>0)
seqlist_destroy
(list)
;return0;
}
優點
無需為線性表中的邏輯關係增加額外的空間
可以快速地獲取線性表中合法位置的元素
缺點
插入和刪除操作需要移動大量的元素
當線性表長度變化較大時難以確定儲存空間的容量
線性表的順序儲存 線性表的順序儲存結構
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...