資料結構(一) 順序表及實現

2021-05-28 06:22:04 字數 1941 閱讀 1630

一、概念

先了解一下線性表,畢竟順序表和煉表都是線性表。

線性表就是有線性結構的表。什麼是線性結構呢?線性結構是n個資料元素的有序集合。它有四個基本特徵:

1.集合中必存在唯一的乙個"第乙個元素";

2.集合中必存在唯一的乙個"最後的元素";

3.除最後元素之外,其它資料元素均有唯一的"後繼";

4.除第一元素之外,其它資料元素均有唯一的"前驅"。  

如(a1,a2,a3,.....,an),a1為第乙個元素,an為最後乙個元素,此集合極為乙個線性結構的集合。

相對應於線性結構,非線性結構的邏輯特徵是乙個結點元素可能對應多個直接前驅和多個後驅。

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

那順序表是神馬呢?

順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元

location(ki)=location(k1)+(i-1)len

二、功能及實現

1、結構體的定義

2、初始化

3、尾部插入值為x的節點

4、列印各節點的值

5、判斷節點是否為空

6、查詢值為x的節點的位置

7、取得i節點的值

8、在i位置插入x值

9、刪除i位置的節點

1、結構體的定義

#define maxsize 100

typedef int datatype;

typedef struct seqlistsequence_list;

2、初始化

void init_sequence_list(sequence_list *slt)
3、尾部插入值為x的節點

void insert_sequence_list(sequence_list *slt,datatype x)

slt->size=slt->size+1;

slt->a[slt->size]=x;

}

4、列印各節點的值

void print_sequence_list(sequence_list slt)

6、查詢值為x的節點的位置

int find_num_sequence_list(sequence_list slt,datatype x)

else

return slt.a[i];

}

8、在i位置插入x值

void insert_pos_sequence_list(sequence_list *slt,int position,datatype x)

if(position<0||position>slt->size)

for(i=slt->size;i>position;i--)

slt->a[i]=slt->a[i-1];

slt->a[position]=x;

slt->size++;

}

9、刪除i位置的節點

void delete_pos_sequence_list(sequence_list *slt,int position)

if(position<0||position>=slt->size)

for(i=position;isize-1;i++)

slt->a[i]=slt->a[i+1];

slt->size--;

}

熟練掌握順序表的實現,棧和佇列的實現都是非常簡單的了。

資料結構一 順序表

目錄 一 順序表的建立和初始化 二 順序表元素的查詢 三 順序表元素的插入 realloc函式 四 順序表元素的刪除 練習 自存 1.陣列法 typedef structsqlist void initlist sqlist l 2.指標法 define max 100 最大儲存量 define l...

資料結構及演算法 順序表

順序表是一種簡單的線性結構,邏輯上相鄰的資料在計算機內的儲存位置也是相鄰的,可以快速定位第幾個元素,中間不允許有空值,插入 刪除時需要移動大量元素。順序表的三個要素 結構體定義 define max size 100 struct sqlist define max size 100 typedef...

資料結構(順序表的實現)

include define max len 100 容器的最大存量 using namespace std 各種資料結構,無非 建構函式 初始化 什麼資料型別 插入 插入的位置和插入的元素 刪除 刪除那個元素 查詢 按值查詢還是按址查詢以及查詢的方向 遍歷 下標遍歷和迭代器遍歷 cout 順序表 ...