資料結構線性結構之連續儲存 陣列

2021-06-19 11:34:24 字數 2054 閱讀 6706

鍊錶是線性資料結構中的一種,線性資料結構是指用接點關聯起來;它包含連續存入--陣列和離散儲存--鍊錶:最常用的應用如棧、佇列

陣列:

元素型別相同,大小相等(指儲存的型別相等)

php lua 和c陣列的比較

1、定義乙個陣列

php  $arr = array();  可以不指定大小直接指定,而且後續可以直接新增

lua   arr = {} 不需要加「;」號,不需要指定大小,它是乙個特殊的陣列

c     struct arr arr; init(&arr, 6);  需要在初始化的時候就指定大小,而且長度在後續不可變,如果需要可變,則需要在陣列類中指定可變因子函式來增加陣列的長度

2、賦值

php $arr = 1 ; php直接指定,且下標是從0開始

lua  arr = 1  lua直接指定,但下標是從1開始

3、得到長度

php count($arr) ; 自帶的函式直接獲取

lua #arr; 得到的長度只能是從1開始的下標,而且長度不一定全是「陣列的元素個數」,可能還包含其它

c  parr->pbase->cnt; 在陣列的類中,陣列的長度是放在乙個變數當中,對陣列每做一步操作就要去觀察陣列的長度是否發生變化,並更新陣列長度的值

上面是主要的最主要的區別

下面是c語言自己的乙個陣列類,寫的不是怎麼的好,但簡單,希望對了解陣列的朋友有所幫助:

#include #include #include #define true 1

#define false 0

typedef int bool;

struct arr

;void init(struct arr *, int);

bool insert(struct arr *, int, int);

bool deleted(struct arr *, int, int *);

bool isempty(struct arr *);

bool isfull(struct arr *);

void sort(struct arr *);

void show(struct arr *);

void inversion(struct arr *);

int main(void)

void init(struct arr *parr, int len)

parr->len = len;

parr->cnt = 0;

return;

}void show(struct arr *parr)

for (int i = 0; i < parr->cnt; i++)

printf("\n");

}bool isempty(struct arr *parr)

else

}bool isfull(struct arr *parr)

bool insert(struct arr *parr, int pos, int vale)

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

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

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

parr->cnt = parr->cnt + 1;

return true;

}bool deleted(struct arr *parr, int pos , int *pvale)

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

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

for (i = pos ; i < parr->cnt; ++i)

parr->cnt = parr->cnt - 1;

return true;

}void inversion(struct arr *parr)

return;

}void sort(struct arr *parr)}}

}

資料結構入門之 連續儲存結構 陣列

include include bool 型別 標頭檔案 include 包含了exit malloc 函式原型 定義乙個資料型別m,該資料型別的名字叫做struct arr struct arr void init arr struct arr parr,int length 分號不能省略 str...

資料結構 連續儲存陣列的演算法

連續儲存陣列演算法實現 include include 包含了malloc include 包含了exit typedef enum bool bool 定義了乙個資料型別,該資料型別名為 struct arr 該資料型別含有三個成員,分別是pbase,len,cnt struct arr void...

資料結構之線性陣列

傳入結構體變數的位址和動態陣列的長度,初始化結構體變數str,str的有效長度賦值為0,str的總長度賦值為len,str的base指向malloc動態分配的陣列 void init list struct student str,int len str cent 0 str length len ...