線性表的順序儲存結構

2021-10-24 09:49:40 字數 3155 閱讀 4510

三.**實現

四.小結

線性表的順序儲存結構,指的是一段位址連續的儲存單元依次儲存線性表的資料元素

在c語言中可以用一堆陣列來實現順序儲存結構

儲存空間的起始位置: 陣列node

線性表的最大容量:陣列長度maxsize

線性表的當前長度:length

#define maxsize 20

typedef struct _tag_list

實現思路

判斷線性表是否合法

判斷位置是否合法

直接通過陣列下標的方式獲取下標

char get(list* list, int pos)

return ret;

}實現思路

判斷線性表是否合法

判斷插入位置是否合法

把最後乙個元素到插入位置的元素後移乙個位置

將新元素插入

線性表長度加1

char insert(list* list, char c, int pos)

//把最後乙個元素到插入位置的元素後移乙個位置

for(i = list->length; i> pos;i–)

//將新元素插入

list->node[i] = c;

//list長度加1

list->length++;

}return ret;

}實現思路

判斷線性表是否合法

判斷刪除位置是否合法

取出刪除元素

把刪除元素pos後的元素分別往前移動乙個位置

char delete(list* list, int pos)

//長度減1

list->length–;

}return ret;

}

#ifndef _seqlist_h_

#define _seqlist_h_

typedef

void seqlist;

typedef

void seqlistnode;

seqlist*

seqlist_create

(int capacity)

;void

seqlist_destroy

(seqlist* list)

;void

seqlist_clear

(seqlist* list)

;int

seqlist_length

(seqlist* list)

;int

seqlist_capacity

(seqlist* list)

;int

seqlist_insert

(seqlist* list, seqlistnode* node,

int pos)

;seqlistnode*

seqlist_get

(seqlist* list,

int pos)

;seqlistnode*

seqlist_delete

(seqlist* list,

int pos)

;#endif

#include

#include

#include

"seqlist.h"

typedef

unsigned

int tseqlistnode;

typedef

struct _tag_seqlist

tseqlist;

seqlist*

seqlist_create

(int capacity)

if(ret !=

null

)return ret;

}void

seqlist_destroy

(seqlist* list)

void

seqlist_clear

(seqlist* list)

}int

seqlist_length

(seqlist* list)

return ret;

}int

seqlist_capacity

(seqlist* list)

intseqlist_insert

(seqlist* list, seqlistnode* node,

int pos)

for(i = slist->length; i > pos; i--

)slist->node[i]

=(tseqlistnode)node;

slist->length--;}

return ret;

}seqlistnode*

seqlist_get

(seqlist* list,

int pos)

return ret;

}seqlistnode*

seqlist_delete

(seqlist* list,

int pos)

slist->length--;}

}

#include

#include

#include

"seqlist.h"

intmain

(int argc,

char

*ar**)

printf

("\n");

while

(seqlist_length

(list)

>0)

seqlist_destroy

(list)

;return0;

}

優點

無需為線性表中的邏輯關係增加額外的空間

可以快速地獲取線性表中合法位置的元素

缺點

插入和刪除操作需要移動大量的元素

當線性表長度變化較大時難以確定儲存空間的容量

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

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