線性表的順序結構

2022-09-11 09:24:12 字數 2603 閱讀 4909

線性表的順序結構操作有著快熟查詢的優勢

**示例:

1

#ifndef sqlist_h_included

2#define sqlist_h_included

34 #include5 #include6 #include

7 #include

8 #include9 #include10

#define list_init_size 50

11#define listincrement 10

12using

namespace

std;

1314 typedef int seqtype; //

儲存單元型別

1516 typedef struct

sqlist;

2122

sqlist createlist_sq()

2930

int initlist_sq(sqlist &l)

3839

int insertlist_sq(sqlist &l, int

index, seqtype val)

44if (index < 0) //

下標是負數,插入到結尾

45 index =l.length;

46if (l.length == l.listsize)

54 l.elem =newbase;

55 l.listsize +=listincrement;56}

57//

尋找合適的插入位置,index後面的元素向後移動

58for (int i = l.length; i > index; i--)

61 l.elem[index] = val; //

插入元素

62 l.length++;

63return1;

64}6566/**

67* 插入順序表(結尾的位置)

68* 與上面的函式是重名函式,這叫函式過載,在c++裡面支援

69*/

70int insertlist_sq(sqlist &l, seqtype val)

7374/**

75* 刪除指定的元素

76* 返回0 找不到指定的元素,刪除失敗。

77* 返回1 找到待刪除的元素,刪除成功。

78*/

79int removelist_sq(sqlist &l, seqtype val) 87}

88if (index < 0)89

return0;

90for (; index < l.length - 1; index++)

93 l.length--;

94return1;

95}96/**97

* 根據下標刪除是指定的結點,並返回元素的值

98* 返回0 下標超出順序表長度,刪除失敗。

99* 返回1 下標正確,刪除元素,並且將已刪除元素值轉給elem

100*/

101int removelist_sq(sqlist &l, int index, seqtype &elem)

109 l.length--;

110return1;

111}

112/*

*113

* 銷毀順序表

114*/

115void destorylist_sq(sqlist &l)

121void displaylist(sqlist &l)

122127

int delelemlist(sqlist &l,seqtype e)

137 l.length--;

138}

139}

140return1;

141}

142int combine(sqlist &la,sqlist &lb,sqlist &lc)

143153

else

154158

159}

160while(i164while(j168169 cout<<"

合併後lc元素

"<170displaylist(lc);

171return0;

172}

173int combine2(sqlist &la,sqlist &lb,sqlist &ld)

174188 i++;

189}

190else

191197 j++;

198}

199}

200while(i206 i++;

207}

208while(j214 j++;

215}

216 cout<<"

合併(沒有重複的)後ld元素

"<217displaylist(ld);

218}

219220

#endif

//sqlist_h_included

線性表 線性表的順序儲存結構

線性表的順序儲存結構 線性結構是乙個資料元素的有序 次序 集。集合中必存在唯一的乙個 第一元素 集合中必存在唯一的乙個 最後元素 除最後元素外,均有唯一的後繼 除第一元素外,均有唯一的前驅。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...

線性表 線性表的順序儲存結構

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...