資料結構 順序表

2021-10-06 23:03:25 字數 3045 閱讀 2594

線性表是具有相同資料型別的n(n>0)個資料元素的有限序列,其中n為表長,當n=0時線性表是乙個空表。

線性表的特點:元素的個數有限,表中元素具有邏輯上的順序性,表中元素有其先後次序,表中元素都是資料元素,每個元素都是單個元素,表中元素的資料型別相同,這意味著每個元素占有相同大小的儲存空間。

initlist(&l),初始化線性表。

length(l):求表長。

locateelem(l,e):按置查詢,e為查詢的值

getelem(l,i):按位查詢,i為第i個元素

listinsert(&l,i,e):插入操作。將e插入第i位置

listdelete(&l,i,&e):刪除操作,刪除第i位置的元素

printlist(l):輸出操作。輸出所有元素的值

empty(l):判空操作。

destroylist(&l):銷毀操作,銷毀線性表。

線性表的順序儲存又順序表,是通過一組位址連續的儲存單元依次儲存線性表中的資料元素,從而使得邏輯上相鄰的兩個元素在物理上也相鄰。

假設線性表的元素型別為elemtype,則線性表的順序儲存型別描述為

typedef

struct

sqlist;

插入
bool

listinsert

(sqlist &l,

int i,elemtype e)

刪除
bool

listdelete

(sqlist &l,

int i,elemtype e)

按置查詢
int

locateelem

(sqlist l,elemtype e)

刪除有序表中值大於x小於y的元素
bool

delete_x_y_orderly

(sqlist &l,

int x,

int y)

if(l.data[l.length-1]

if(l.data[0]

>y)

if(x>y)

for(

int i=

0;i(l.data[i]

>y&&b==-1

)if(a!=-1

&&b!=-1

&&b>a)

} l.length-

=b-a-1;

return

true

;}

刪除無序表中值大於x小於y的元素
bool

delete_x_y_disorder

(sqlist &l,

int x,

int y)

if(x>y)

int a=0;

for(

int i=

0;il.length=a;

}

元素置逆
bool

reverse

(sqlist &l)

return

true

;}

刪除重複元素
bool

delete_repeat

(sqlist &l)}if

(b==0)

b=0;

} l.length=a;

return

true

;}

把兩個有序表融合成乙個有序表
bool

marge

(sqlist a,sqlist b,sqlist &c)

int i,j,k;

while

(ielse

}while

(iwhile

(jc.length=k;

return

true

;}

在乙個有序順序表裡面查詢值為x的元素,並將其與其後繼元素互換,若沒有值為x的元素則新增進順序表使其仍然有序
bool

wangdao9_2

(sqlist &l,

int x)

if(l.data[mid]

>x)

else

}}

使元素後移x位(三步反轉法)
bool

reverse

(sqlist &l,

int from,

int to)

return

true;}

bool

backmovep

(sqlist &l)

兩個長度相同的公升序序列,求兩個序列合併之後的中位數,位置在序列長度二分之一處的數稱為中位數(分別比較中位數法)
int

m_search

(int a,

int b,

int n)

else

}else

else}}

return a[from1]

?a[from1]

:b[from2]

;}

找出乙個數量超過序列長度二分之一的元素並輸出該元素若無此元素返回-1(重複數計數法,遇到同樣的加一不同的減一,為零則換元素,最後得到的數遍歷檢視是否大於一半)
int

majority

(int a,

int n)}if

(count>0)

for(i=count=

0;i}

找出序列未出現過的最小整數,盡量降低時間複雜度
#include

#include

intfindmissmin

(int a,

int n)

}}

資料結構 順序表

順序表的特徵 1由唯一的表名標識 2佔據一塊連續的儲存空間 3資料順序存放,元素之間有先後關係 定義動態的順序表 define maxsize 100 typedef struct sqlist 這個結構體型別存放的是順序表的資訊和順序表的資料 初始化順序表 void initsqlist sqli...

資料結構 順序表

順序表示最簡單的乙個資料結構,直接貼 吧,因為比較簡單。include include typedef struct sqlist sqlist void initlist sqlist l l length 0 void getelem sqlist l 初始化 l length j printf...

資料結構順序表

include include include include include include include include include include include include include include using namespace std define maxn 100000...