線性表之順序表

2021-07-10 17:26:53 字數 2188 閱讀 5296

一、線性表的定義

從邏輯結構的角度來講,線性表中各個元素之間是唯一的、並且有序排列的關係。

從儲存結構的角度來看,線性表的具體實現過程中可採用順序儲存結構和鏈式儲存結構。

順序儲存結構的線性表稱為順序表,鏈式儲存結構的線性表分為單鏈表和雙鏈表。

二、順序表

#include "stdafx.h"

#include "head.h"

using namespace std;

#define maxsize  100

//功能:順序表的線性儲存結構中存的內容

typedef struct 

datatype;

//功能:順序表的線性儲存結構

typedef struct _seqlist 

seqlist, *pseqlist;

//功能:標頭檔案包含

void initlist(pseqlistl);

bool

insertlist(pseqlist l, int i, datatype x);

void display(pseqlist  l);

bool delete(pseqlist l, int i);

datatype getnode(pseqlist l, int i);

int findnode(pseqlist  l,  datatype*  pnode);

int _tmain(int argc, _tchar* argv)

zeromemory(&node, sizeof(datatype));

strcpy(node.info, "hello2");

insertlist(&list, 6, node);

for (i = 7; i < 9; i++)

display(&list);

zeromemory(&node, sizeof(datatype));

strcpy(node.info, "hello2");

i = findnode(&list, &node);

return 0; }

//功能:順序表的初始化

void initlist(pseqlistl)

//功能:順序表的插入運算

//在表的第i個元素與第i+1個元素之間插入x, 第i+1個之後的元素全部後移一位

//a0 a1 a2 a3 ...  

a(i-1)  

ai  

a(i+1)  ...  a(n-1)

//1  

2   3   4  

i  i+1  

n  (len = n)

bool

insertlist(pseqlist l, int i, datatype x)

else if (i < 1 || i > (l->len + 1))

else 

l->data[i-1] = x;

l->len++;

return true; }

} //功能:順序表的顯示

void display(pseqlist  l)

for (i = 0; i < l->len; i++)

} //功能:順序表的刪除運算

//刪除表的第i個元素, 第i+1個之後的元素全部前移一位

//a0 a1 a2 a3 ...  

a(i-1)  

ai  

a(i+1)  ...  a(n-1)

//1  

2   3   4  

i  i+1  

n  (len = n)

bool  delete(pseqlist l, int i)

else if (i < 1 || i > l->len )

else

l->len--;

return true; }

} //功能:按序號取節點

datatype getnode(pseqlist l, int i)

return *pdata = l->data[i-1]; }

//功能:節點查詢

int findnode(pseqlist  l,  datatype*  pnode)

}return 0; }

線性表之順序表

資料結構草草學過,不過沒有認真運用過。雖然知道一些最為基本的抽象型別及一些常用操作,不過叫我把這些基本的演算法寫出來我也 是寫不出來的。因為常說資料結構 演算法是乙個程式設計師最基本的素質,所以這次認真加以複習。在複習的同時我盡量將自己學習的其他的 一些基本知識比如c 中的物件導向思想也引入進來,同...

線性表之順序表

線性表 我們都知道是一種常用的資料結構,也是歷來各種考試的重點。今天抽了一些時間把線性表做了總結。線性表是n個資料元素的乙個有限序列。用公式表示為 l a1,a2,a3,a4,an 因為線性表是乙個有限的序列,所以也如上面公式所示,它的各個元素是相繼排放的。那麼它的每個相連的兩項之間都是有乙個邏輯關...

線性表之順序表

線性表的操作 initlist l 初始化操作,建立乙個空的線性表l。listempty l 判斷線性表是否為空表,空返回true,否則返回false。clearlist l 將線性表清空。getelem l,i,e 將線性表l中的第i個位置元素值返回給e。listdelete l,i,e 刪除線性...