一 線性表以及線性表的順序儲存結構

2021-07-02 15:51:01 字數 3198 閱讀 4060

1、線性表的定義

2、線性表的性質

3、順序儲存結構

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

4、插入元素

演算法描述:

5、刪除元素

演算法描述:

6、可復用順序線性表 **例項

相關操作的定義

#ifndef _seqlist_h_

#define _seqlist_h_

#include

/* 對外做資料封裝,遮蔽線性表的實現

*/typedef

void seqlist;

typedef

void seqlistnode;

/*該方法用於建立並且返回乙個空的線性表

*/seqlist* list_create(int capacity);

/*該方法用於銷毀乙個線性表list

*/void list_destroy(seqlist* list);

/*該方法用於將乙個線性表list中的所有元素清空

使得線性表回到建立時的初始狀態

*/void list_clear(seqlist* list);

/*該方法用於返回乙個線性表list中的所有元素個數

*/int list_length(seqlist* list);

/*該方法用於返回乙個線性表list中的最大元素個數

*/int list_capacity(seqlist* list);

/*該方法用於向乙個線性表list的pos位置處插入新元素node

返回值為1表示插入成功,0表示插入失敗

*/int list_insert(seqlist* list, seqlistnode* node, int pos);

/*該方法用於獲取乙個線性表list的pos位置處的元素

返回值為pos位置處的元素,null表示獲取失敗

*/seqlistnode* list_get(seqlist* list, int pos);

/*該方法用於刪除乙個線性表list的pos位置處的元素

返回值為被刪除的元素,null表示刪除失敗

*/seqlistnode* list_delete(seqlist* list, int pos);

#endif

#include "seqlist.h"

#include

/* windows 下和linux下void*的指標長度不一樣

*/#ifdef win32

typedef

unsigned

int tseqlistnode;

#else

typedef

unsigned

long tseqlistnode;

#endif

/* length 記錄線性表的當前元素個數

capacity 記錄線性表的最大元素個數

tseqlistnode 該陣列用於儲存被插入元素的位址值

*/typedef

struct _struct_seqlist

tseqlist;

/*該方法用於建立並且返回乙個空的線性表

*/seqlist* list_create(int capacity)

if (tlist != null)

return tlist;}/*

該方法用於銷毀乙個線性表list

*/void list_destroy(seqlist* list)}/*

該方法用於將乙個線性表list中的所有元素清空

使得線性表回到建立時的初始狀態

*/void list_clear(seqlist* list)}/*

該方法用於返回乙個線性表list中的所有元素個數

*/int list_length(seqlist* list)

return iret;}/*

該方法用於返回乙個線性表list中的最大元素個數

*/int list_capacity(seqlist* list)

return iret;}/*

該方法用於向乙個線性表list的pos位置處插入新元素node

返回值為1表示插入成功,0表示插入失敗

*/int list_insert(seqlist* list, seqlistnode* node, int pos)

//插入元素

tlist->list[pos] = (tseqlistnode)node;

//更改元素個數

tlist->length++;}}

return iret;}/*

該方法用於獲取乙個線性表list的pos位置處的元素

返回值為pos位置處的元素,null表示獲取失敗

*/seqlistnode* list_get(seqlist* list, int pos)

}return node;}/*

該方法用於刪除乙個線性表list的pos位置處的元素

返回值為被刪除的元素,null表示刪除失敗

*/seqlistnode* list_delete(seqlist* list, int pos)

//更改元素個數

tlist->length--;}}

return node;

}

測試程式:

#include 

#include "seqlist.h"

//定義線性表的最大元素個數

#define maxsize 5

/* 該函式用於輸出線性表中的所有元素

*/void printlist(seqlist *list)

for (int i = 0; i < list_length(list); i++)

printf("\n");

}int main()

編譯步驟:

0.1 解壓縮:tar -zxvf seqlist-1.0.tar.gz

0.2 進入目錄:./configure

0.3 生成seqlist:make

0.4 執行程式:./seqlist

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

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