順序表,全名順序儲存結構,是線性表的一種。
例如,使用順序表儲存集合 ,資料最終的儲存狀態如圖 所示:
建立順序表除了需要足夠的容量大小,同時還需要另外兩個變數
1.記錄當前順序表元素的個數
2.記錄當前順序表申請的儲存容量
注:一般情況下:儲存容量大於順序表的個數
typedef
struct sqlist sqlist;
注意,sqlist_head 是我們宣告的乙個未初始化的動態陣列,不要只把它看做是普通的指標。
接下來就是對其的一些操作
初始化
//順序表初始化
sqlist init_table()
list.length =0;
//初始化元素個數為0
list.size = size;
//初始化儲存空間為size
return list;
}
輸出表中的元素
//展示表
void
show_table
(sqlist list)
for(i =
0; i < list.length; i++
)//便利動態陣列
printf
("\n");
}
插入元素
//在指定位置add插入元素elem
sqlist add_table
(sqlist list,
int add,
int elem)
//判斷空間是否足夠,增加分配
if(list.length == list.size)
list.sqlist_head = newbase;
list.size +=5
;}//表元素後移
for(i = list.length -
1; i >= add-
1; i--
)//在插入位置處賦值
list.sqlist_head[i]
= elem;
//表長度加一
list.length ++
;return list;
}
刪除
//刪除
sqlist delete_table
(sqlist list,
int del)
for(i = del -
1; i < list.length; i++
)//指定插入位置後面的值全部後移
list.length--
;return list;
}
更改
//更改
sqlist update_table
(sqlist list,
int elem,
int new_elem)
else
//沒有找到匹配值
}return list;
}
查詢
//通過元素值查詢
intfind_pos_table
(sqlist list,
int elem)
}return-1
;}
清空表
//清空表
void
clear_table
(sqlist *list)
銷毀表
//銷毀表
sqlist destory_table
(sqlist *list)
求表長
//求表長
intget_length_table
(sqlist list)
整體**如下
#include
"linear_list.h"
#include
#include
# define size 10
//順序表初始化
sqlist init_table()
list.length =0;
list.size = size;
return list;
}//展示表
void
show_table
(sqlist list)
for(i =
0; i < list.length; i++
)//便利動態陣列
}//插入
sqlist add_table
(sqlist list,
int add,
int elem)
//判斷空間是否足夠,增加分配
if(list.length == list.size)
list.sqlist_head = newbase;
list.size +=5
;}//表元素後移
for(i = list.length -
1; i >= add-
1; i--
)//在插入位置處賦值
list.sqlist_head[i]
= elem;
//表長度加一
list.length ++
;return list;
}//刪除
sqlist delete_table
(sqlist list,
int del)
for(i = del -
1; i < list.length; i++
)//指定插入位置後面的值全部後移
list.length--
;return list;
}//t通過元素值查詢
intfind_pos_table
(sqlist list,
int elem)
}return-1
;}//更改
sqlist update_table
(sqlist list,
int elem,
int new_elem)
else
//沒有找到匹配值
}return list;
}//清空表
void
clear_table
(sqlist *list)
//求表長
intget_length_table
(sqlist list)
//判斷表是否為空
intisnull_table
(sqlist list)
//銷毀表
sqlist destory_table
(sqlist *list)
intmain()
#ifndef linear_list_h
#define linear_list_h
typedef
struct sqlist sqlist;
//順序表初始化
sqlist init_table()
;//插入
sqlist add_table
(sqlist list,
int add,
int elem)
;//刪除
sqlist delete_table
(sqlist list,
int del)
;//t通過元素值查詢
intfind_pos_table
(sqlist list,
int elem)
;void
show_table
(sqlist list)
;//更改
sqlist update_table
(sqlist list,
int elem,
int new_elem)
;//清空
void
clear_table
(sqlist *list)
;//求表長
intget_length_table
(sqlist list)
;//判斷表是否為空
intisnull_table
(sqlist list)
;//銷毀表
sqlist destory_table
(sqlist *list)
;#endif
// !linear_list_h
線性表的順序儲存 線性表的順序儲存結構
1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...
一 線性表以及線性表的順序儲存結構
1 線性表的定義 2 線性表的性質 3 順序儲存結構 線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。4 插入元素 演算法描述 5 刪除元素 演算法描述 6 可復用順序線性表 例項 相關操作的定義 ifndef seqlist h define seqlist h in...
線性表 線性表的順序儲存結構
線性表的順序儲存結構 線性結構是乙個資料元素的有序 次序 集。集合中必存在唯一的乙個 第一元素 集合中必存在唯一的乙個 最後元素 除最後元素外,均有唯一的後繼 除第一元素外,均有唯一的前驅。adt list 資料關係 r1 adt list 容易混的概念 引用符號 和引用型操作沒有關係 加工型操作 ...