1 #include 2using
namespace
std;3//
定義線性表結構體
4#define size 100
5 typedef struct
sqlist *list;
10//
初始化11
void initlist(sqlist &l)
18//
設定表長
19 l.length = 0;20
//設定表的儲存容量
21 l.listsize =size;22}
23//
插入元素
24void insertlist(sqlist &l, int a, int
j) 30
//移動後半部分資料
31int *q, *p;
32 q = &(l.elem[j-1]);//
q為要插入的位置
33for (p = &(l.elem[l.length]); p > q; p--) *p = *(p - 1
);34 *q =a;
35 l.length++;
36 cout << "
資料插入成功
"<38//
刪除元素
39void deletelist(sqlist &l, int j,int &e)
44int *p;
45 e = l.elem[j - 1
];46
for (p = &(l.elem[j - 1]); p < &(l.elem[l.length - 1]); p++) *p = *(p + 1
);47 l.length--;
48 cout << "
資料刪除成功
"<50//
銷毀線性表
51void destorylist(sqlist &l)
57//
判斷是否為空
58bool isempty(sqlist &l)
62//
求線性表長度
63int listlength(sqlist &l)
66//
返回第i個元素的值
67int getelem(sqlist &l, int
i) 73
else
return l.elem[i - 1
];74}75
//查詢元素
76int findelem(sqlist &l, int
e) 82}83
return -1;//
此元素不存在84}
85//
返回前驅
86int priorelem(sqlist &l, int
cur_e)
94else
if (i == 0
) 98
else
103}
104//
返回後繼
105int nextelem(sqlist &l, int
cur_e)
113else
if (i == (l.length-1
)) 117
else
122}
123int
main()
本**並未採用定義類的方式來封裝函式,只是單純定義函式然後呼叫,本**目的主要是能夠掌握各函式的定義,因此並未定義類
線性表(線性儲存結構)
線性表有兩種物理儲存結構 順序儲存結構和鏈式儲存結構 順序儲存結構指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。陣列 如 a1,a2,an 物理上的儲存方式事實上就是在記憶體中找個初始位址,然後通過佔位的形式,把一定的記憶體空間給佔了,然後把相同資料型別的資料元素依次放到這塊空地種。1.儲...
線性表 線性表的順序儲存結構
線性表的順序儲存結構 線性結構是乙個資料元素的有序 次序 集。集合中必存在唯一的乙個 第一元素 集合中必存在唯一的乙個 最後元素 除最後元素外,均有唯一的後繼 除第一元素外,均有唯一的前驅。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...