資料結構 靜態順序表

2021-08-16 21:35:55 字數 2675 閱讀 3712

本篇全部**都在linux系統下完成

用一段位址連續的單元依次儲存資料元素的線性結構,順序表又分為靜態順序表和動態順序表

首先建立乙個結構體seqlist,在結構體中我們定義了乙個陣列seqlist,用來存放資料,以及乙個無符號整形變數size,用來控制順序表有效資料的個數。

即我們通過乙個簡單的陣列實現順序表的一些功能

8

#define seqlistmax 50

9typedef

char type;

10typedef

struct seqlistseq;

接下來我們將順序表初始化一下
4

void seqlistinit(seq* seq)

5 10 seq->size =

0; 11 }

我們在用指標當做形參時,必須要判斷其是否為空,如果不為空,才能進行接下來的工作。初始化完成之後我們再進行接下來的功能實現,函式內部只實現乙個資料的插入與刪除,如果想進行多個資料的操作,可以在測試函式中實現。

26

void seqlistpushback(seq* seq ,type a)

27 33if(seq->size>=seqlistmax)//判斷順序表是否已存滿資料

37 seq->seqlist[seq->size]

= a;

38 seq->size++;//size+1 即說明表中插入乙個資料,在這裡我們通過size的大小來簡單

39 } //地控制表的大小(不是實際大小,而是有效資料的個數)

41

void seqlistpopback(seq* seq)

42 47if(seq->size==

0)//判斷順序表是否為空

51 seq->size--;//size--說明有效資料減一,即原來表尾的資料已經不在有效範圍內

52 }

53 void seqlistpushtop(seq* seq ,type a)

54 60if(seq->size>=seqlistmax)

64 int i=0;

65for(i=seq->size;i>0;i--)//將原有有效資料統統向後移一位

68 seq->seqlist[i]=a;//頭部原有資料被新資料代替,實現插入功能

69 seq->size++;//插入乙個資料,size便需要加1

70 }

72 void seqlistpoptop(seq* seq)

73 7879

if(seq->size==0)

83 int i=0;

84for(i=0;isize;i++)//將原有有效資料統統向前移動一位

87 seq->size--;//刪除乙個資料,size--,說明有效資料減一

88 }

90

void seqlistreadpos(seq* seq,int pos)//這裡的pos並不是陣列下標的意思,例如該順序表有效資料為4,則pos值若為3的話

91 97

if(seq->size==0)

101if((pos>seq->size)||(pos<=0))

105printf("[%c]\n",seq->seqlist[pos-1]);

106 }

109

void seqlistreplacepos(seq* seq,int pos,type a)

110

116if(seq->size==

0)120

if((pos>seq->size)||(pos<=

0))124 seq->seqlist[pos-1]

=a;125 }

127 void seqlistfindpos(seq* seq,type a)

128

134if(seq->size==0)

138int i = 0;

139for(i=0;isize;i++)

143 }

144printf("\n");

145 }

147 void seqlistpushpos(seq* seq,int pos,type a)

148

154if(seq->size>=seqlistmax)

158if((pos>seq->size)||(pos<=0))

162 int i = 0;

163for(i=seq->size;i>=pos;i--)

166 seq->seqlist[i]=a;

167 seq->size++;

168 }

至此,基本功能已實現完,希望各位在寫好乙個功能**時便再寫乙個簡單的測試**,保證其正確性,以上**已經經過測試,可以實現指定功能,希望瀏覽這篇文章的人能夠有所收穫,或者向我提出寶貴的意見,謝謝瀏覽

資料結構靜態順序表

define max size 10 typedef int datatype struct seqlist 以上 就是建立乙個順序表,其中seqlist是整個順序表的空間而size是順序表中元素的個數。接下來我將用靜態順序表來實現尾插,頭插,任意插入資料,尾刪,頭刪等 標頭檔案 ifndef se...

資料結構靜態順序表

順序表 用一段位址連續儲存單元依次儲存資料元素的線性結構 pragma once 防止標頭檔案重複包含 define max size 10 include include include 實現基於靜態陣列的順序表的以下基本操作 首先先定義乙個結構體型別seqlist arr size 有效的元素個...

資料結構 靜態順序表

資料型別的定義 typedef int datatype typedef struct seqlist seqlist,pseqlist 建立變數的初始化和銷毀 void initseqlist pseqlist ps void destroyseqlist pseqlist ps 順序表的列印 這...