資料結構之順序表

2021-09-02 18:41:55 字數 3400 閱讀 3443

資料結構:資料與資料之間的組織形式

=== > 怎麼存資料

線性表:除去頭尾,中間元素有且只有乙個前繼,有且只有乙個後繼

根據儲存空間的分布:

1、 順序表: 儲存的記憶體空間連續

2、 鍊錶: 儲存的記憶體空間不連續

//建立順序表

seq* creat ();

//摧毀順序表

void destroy(seq*s);

// 為順序表重新分配空間

bool againmalloc(seq*s);

// 插入資料:尾插

// s:要插入的順序表

// data:要插入的資料

// 返回值:成功返回 true,失敗返回false,其他返回error

bool insert_last(seq* s, data data);

// 插入資料:頭插

// s:要插入的順序表

// data:要插入的資料

// 返回值:成功返回 true,失敗返回false,其他返回error

bool insert_head(seq* s, data data);

// 插入資料:根據位置插入資料

// s :要插入的順序表

// index: 要插入位置的下標

// data :要插入的資料

// 返回值:成功返回 true,失敗返回false,其他返回error

bool insert_pos(seq* s, int index, data data);

// 插入資料:根據位置刪除資料

// s :要刪除的順序表

// index: 要刪除位置的下標

// 返回值:成功返回 true,失敗返回false,其他返回error

bool delete_pos(seq* s, int index);

//列印

void display(seq*s);

#endif // _seq_h_

#include

#include

#include

"seq.h"

//#include "assert.h"

seq* creat ()

s->pdata =

(data*

)malloc

(sizeof

(data)

/sizeof

(char

)*init_size);if

(null

== s->pdata)

s->maxsize = init_size;

s->current_size =0;

return s;

}void

destroy

(seq*s)

// 為順序表重新分配空間

bool againmalloc

(seq*s)

data newsize =

sizeof

(data)

/sizeof

(char)*

(s->maxsize + add_size);

data* p =

(data*

)realloc

(s->pdata,newsize);if

(null

== p)

s->pdata = p;

s->maxsize +

= add_size ;

return true;

}//插入資料

bool insert_last

(seq*s,data data)

s->pdata[s->current_size++

]= data;

return true;

}bool insert_head

(seq* s, data data)

s->pdata[0]

= data ;

s->current_size++

;return true;

}bool insert_pos

(seq* s,

int index, data data)

int i;

for(i = s->current_size; i>index; i--

) s->pdata[index]

= data;

s->current_size++

;return true;

}bool delete_pos

(seq* s,

int index)

s->current_size--

;return true;

}void

display

(seq*s)

printf

("\n");

}

#include

#include

"seq.h"

intmain()

else

int i;

for(i=

0;i<

20;i++

)display

(s);

insert_head

(s,520);

display

(s);

insert_pos

(s,5

,200);

display

(s);

insert_pos

(s,2,15

);display

(s);

printf

("***************************\n");

delete_pos

(s,5);

display

(s);

destroy

(s);

return0;

}

資料結構之順序表

首先是標頭檔案seqlist.h ifndef seqlist h define seqlist h include includeusing namespace std define elemtype int define seqlist default size 10 typedef struc...

資料結構之順序表

順序表的思想容易了解,但是 不容易掌握,我這裡根據老師所提供的 進行一下簡單的總結 這個 包含順序表的查詢,插入,刪除,建表,輸出資料 includeusing namespace std define ok 1 define error 0 define overflow 2 typedef in...

資料結構之順序表

順序表就是按照順序儲存方式儲存的線性表,該線性表的結點按照邏輯次序一次存放在計算機的一組連續的儲存單元中如下圖 由於順序表是一次存放的,只要知道了該順序表的首位址以及每個資料元素所占用的儲存長度,那麼我們就很容易計算出任何乙個資料元素 也就是資料繫結點 的位置。1 結點資料型別 public cla...