資料結構之順序表

2021-09-24 06:12:44 字數 2700 閱讀 2768

線性結構是乙個有序資料元素的集合。

常用的線性結構有:線性表,棧,佇列,雙佇列,陣列,串。

順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列 上完成資料的增刪查改

順序表一般可以分為:

1. 靜態順序表:使用定長陣列儲存。 2. 動態順序表:使用動態開闢的陣列儲存。

// 動態的順序表 

typedef int datatype;

typedef struct seqlist

seqlist, *pseq;

//typedef struct seqlist seqlist;

//typedef struct seqlist* pseqlist;

// 順序表的初始化

void seqlistinit(pseq ps, int capacity);

ps->_capacity = capacity;

ps->_size = 0;

}// 在順序表的尾部插入值為data的元素

void seqlistpushback(pseq ps, datatype data);

// 刪除順序表最後乙個元素

void seqlistpopback(pseq ps);

// 在順序表的頭部插入值為data的元素

void seqlistpushfront(pseq ps, datatype data);

//插入元素

ps->_array[0] = data;

ps->_size++;

#endif

seqlistinsert(ps, 0, data);

}// 刪除順序表頭部的元素

void seqlistpopfront(pseq ps);

// 在順序表pos位置插入值為data的元素

void seqlistinsert(pseq ps, int pos, datatype data);

// 刪除順序表中pos位置上的元素

void seqlisterase(pseq ps, int pos);

// 在順序表中查詢值為data的元素,找到返回該元素在順序表中的下標,否則返回-1

int seqlistfind(pseq ps, datatype data);

return -1;

}// 檢測順序表是否為空,如果為空返回非0值,非空返回0

int seqlistempty(pseq ps);

// 返回順序表中有效元素的個數

int seqlistsize(pseq ps);

// 返回順序表的容量大小

int seqlistcapacity(pseq ps);

// 將順序表中的元素清空

void seqlistclear(pseq ps);

// 刪除順序表中第乙個值為data的元素

void seqlistremove(pseq ps, datatype data);

// 銷毀順序表

void seqlistdestroy(pseq ps);

}// 順序表的擴容

void checkcapacity(pseq ps);

for(int i=0; i < ps->_size; ++i)

ptemp[i] = ps ->_array[i];

free(ps->_array); //釋放舊空間

ps->_array = ptemp;

ps->_capacity = newcapacity;

}}

.h

#pragma once

typedef int sdatatype;

// 鍊錶的節點

typedef struct slistnode

node, *pnode;

// node n; n._data = 10; (&n)->_data = 200

// node* p = &n; p->_data = 100; (*p)._data = 200;

typedef struct slist

slist, *pslist;

void slistinit(slist* s);

void slistpushback(slist* s, sdatatype data);

void slistpopback(slist* s);

void slistpushfront(slist* s, sdatatype data);

void slistpopfront(slist* s);

void slistinsert(pnode pos, sdatatype data);

void slisterase(slist* s, pnode pos);

pnode slistfind(slist* s, sdatatype data);

int slistsize(slist* s);

int slistempty(slist* s);

void slistremove(slist* s, sdatatype data);

void slistremoveall(slist* s, sdatatype data);

void testslist();

資料結構之順序表

首先是標頭檔案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...