線性表的順序儲存結構

2021-07-12 04:18:10 字數 2549 閱讀 9991

/*

一、資料結構書上對程式arrylist.c的某些定義

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

2.特點是邏輯關係上相鄰的兩個元素在物理位置上也相鄰,因此可以隨機訪問表中任一元素。它的儲存位置可用乙個簡單、直觀的公式來表示。但這個特點也鑄成了這種儲存結構

的弱點:在作插入和刪除操作時,需要移動大量元素。

二、寫arrylist.c的目的:

1.提公升寫**能力

2.體現儲存不一樣,操作也就不一樣。本檔案為連續儲存,比如刪除乙個元素後,其他地方的元素都要跟著移位置才行,而離散儲存就不一樣,不要都移動。

3.泛型儲存不一樣,操作也一樣。因為內部是通過c++的乙個模版內部實現了,導致外部看起來的效果一樣。這樣才能很好地理解泛型。

4.注意廣義演算法與狹義演算法,比如冒泡法排序,廣義的演算法就是指冒泡法,排序的方法,對於連續儲存和離散儲存都一樣。而狹義的演算法來說,連續儲存和離散儲存就不一樣了,也

就是操作不一樣。我認為,陣列構建簡單,操作起來較複雜,鍊錶構建起來複雜,但有時操作起來簡單。

*/#include "arraylist.h"

void init_arraylist(struct arraylist * parr,int lengh)

else

return;//程式設計風格,告訴其他人員此函式已結束

}int isempty(struct arraylist * parr)

int isfull(struct arraylist * parr)

void showarraylist(struct arraylist * parr)

for(i=0;ilen;i++)

printf("parr->pbase[%d]=%d\n",i,parr->pbase[i]);

return;

}int addtoend(struct arraylist * parr,int val)

parr->pbase[parr->cnt] = val;

parr->cnt++;

return 1;

}int deleteelement(struct arraylist * parr,int pos,int *whichdata)

if( pos < 1 || pos > parr->cnt)

*whichdata = parr->pbase[pos-1];

for(i=pos;icnt+1;i++)

parr->pbase[i-1] = parr->pbase[i];

parr->cnt--;

return 1; }

int insertarraylist(struct arraylist * parr,int pos,int val)

if( pos<1 || pos>parr->cnt)

for(i=parr->cnt; i>pos-1; i--)

parr->pbase[i] = parr->pbase[i-1];

parr->pbase[pos-1] = val;

parr->cnt++;

return 1;

}void inversionarraylist(struct arraylist * parr)

return;

}void sortarraylist(struct arraylist * parr)

for(i=0; icnt-1; i++)//冒泡法

for(j=i+1; jcnt; j++)

if( parr->pbase[i] > parr->pbase[j] )//公升序

}void freearraylist(struct arraylist * parr)

對應標頭檔案:

#ifndef arraylist_h

#define arraylist_h

#include #include #include struct arraylist;

void init_arraylist(struct arraylist * parr,int lengh);

int isempty(struct arraylist * parr);

int isfull(struct arraylist * parr);

void showarraylist(struct arraylist * parr);

int addtoend(struct arraylist * parr,int val);

int deleteelement(struct arraylist * parr,int pos,int *whichdata);

int insertarraylist(struct arraylist * parr,int pos,int val);

void inversionarraylist(struct arraylist * parr);

void sortarraylist(struct arraylist * parr);

void freearraylist(struct arraylist * parr);

#endif

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

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