0917 資料結構 exercise1 順序表

2021-10-09 12:48:07 字數 2856 閱讀 3716

//順序表基本運算演算法

#include

#include

#define maxsize 50

typedef

int elemtype;

typedef

struct

sqlist;

//順序表的型別

void

createlist

(sqlist *

&l,elemtype a,

int n)

//建立順序表

void

initlist

(sqlist *

&l)//初始化線性表

void

destroylist

(sqlist *

&l)bool

listempty

(sqlist *l)

intlistlength

(sqlist *l)

void

displist

(sqlist *l)

//輸出線性表

bool

getelem

(sqlist *l,

int i,elemtype &e)

//求線性表中的某個資料元素值

intlocateelem

(sqlist *l, elemtype e)

//按元素值查詢

bool

listinsert

(sqlist *

&l,int i,elemtype e)

//求線性表的長度

bool

listdelete

(sqlist *

&l,int i,elemtype &e)

//刪除資料元素

intmain()

已知順序表l為按值遞增有序的,編寫演算法將資料元素e插入到順序表l中,使之仍有序。

通過每一次,將鍊錶中的所有元素與第1(2,3,4…)個元素比較,然後刪除重複的元素

#include

#include

#include

#include

using

namespace std;

const

int list_init_size =

100;

const

int listincreasememt =10;

//定義元素型別

typedef

int elemtype;

//定義順序表節點結構

typedef

struct

sqlist;

//構造空的順序表

bool

initlist_sq

(sqlist &l)

l.length =0;

l.listsize = list_init_size;

return

true;}

//按大小將元素插入到適當位置(順序表遞增有序)

bool

listinsert_sq

(sqlist &l, elemtype e)

//儲存分配失敗

l.elem = newbase;

l.listsize +

= listincreasememt;

}//尋找合適位置並插入

int i;

for(i=

0; ielemtype *q =

&(l.elem[i]);

elemtype *p=

&(l.elem[l.length-1]

);for(q; p>=q; p--

)*q = e;

++l.length;

return

true;}

//輸出順序表

bool

print

(sqlist &l)

printf

("\n");

return0;

}int

main

(int argc,

char

** ar**)

a.length = len;

cout << endl <<

"請輸入需要插入的元素:"

; elemtype x;

scanf

("%d"

,&x)

;listinsert_sq

(a, x);

cout << endl <<

"插入後表中元素依次為:"

;print

(a);

return0;

}

編寫演算法清除順序表l中所有重複的資料元素。

#include

#include

struct node

;int

main

(int argc,

char

const

*ar**)

//通過兩個指標的遍歷來實現刪除重複元素。類似於陣列裡面的雙層迴圈

p = head -

> next;

while

(p -

> next !=

null

)else}if

(p -

> next ==

null

)else}

p = head -

> next;

while

(p)else

p = p -

> next;

}return0;

}

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...

資料結構 01 資料與資料結構

1.資料data 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。2.資料元素data elements 資料元素是組成資料的 有一定意義的基本單位,在計算機中通常作為整體進行處理。3.資料物件data object 資料物件是性質相同的資料元素的...