最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)-期末復(fù)習(xí)匯總

2023-10-18 18:33 作者:答案資料  | 我要投稿

數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版) 期末復(fù)習(xí)匯總

第一章?緒論

數(shù)據(jù)結(jié)構(gòu):是一門研究非數(shù)值計(jì)算程序設(shè)計(jì)中的操作對(duì)象,以及這些對(duì)象之間的關(guān)系和操作的學(xué)科。

數(shù)據(jù)結(jié)構(gòu)是一門綜合性的專業(yè)課程,是一門介于數(shù)學(xué)、計(jì)算機(jī)硬件、計(jì)算機(jī)軟件之間的一門核心課程。是設(shè)計(jì)和實(shí)現(xiàn)編譯系統(tǒng)、操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)及其他系統(tǒng)程序和大型應(yīng)用程序的基礎(chǔ)。

數(shù)據(jù):是客觀事物的符號(hào)表示,是所有能輸入到計(jì)算機(jī)中并被計(jì)算機(jī)程序處理的符號(hào)的總稱。如數(shù)學(xué)計(jì)算中用到的整數(shù)和實(shí)數(shù),文本編輯中用到的字符串,多媒體程序處理的圖形、圖像、聲音及動(dòng)畫等通過特殊編碼定義后的數(shù)據(jù)。

數(shù)據(jù)的邏輯結(jié)構(gòu)劃分:線、樹、圖

算法的定義及特性

算法:是為了解決某類問題而規(guī)定的一個(gè)有限長(zhǎng)的操作序列。

五個(gè)特性:有窮性、確定性、可行性、輸入、輸出

評(píng)價(jià)算法優(yōu)劣的基本標(biāo)準(zhǔn)(4個(gè)):

正確性、可讀性、健壯性、高效性及低存儲(chǔ)量

第二章 線性表

線性表的定義和特點(diǎn):

線性表:由n(n≥0)個(gè)數(shù)據(jù)特性相同的元素構(gòu)成的有限序列。線性表中元素個(gè)數(shù)n(n≥0)定義為線性表的長(zhǎng)度,n=0時(shí)稱為空表。

非空線性表或線性結(jié)構(gòu),其特點(diǎn):

(1)存在唯一的一個(gè)被稱作“第一個(gè)”的數(shù)據(jù)元素;

(2)存在唯一的一個(gè)被稱作“最有一個(gè)”的數(shù)據(jù)元素;

(3)除第一個(gè)之外,結(jié)構(gòu)中的每個(gè)數(shù)據(jù)元素均只有一個(gè)前驅(qū)

(4)除最后一個(gè)之外,結(jié)構(gòu)中的每個(gè)數(shù)據(jù)元素均只有一個(gè)后繼。

順序表的插入:n個(gè)元素在i位插入,應(yīng)移動(dòng)(n-i+1)位元素。

順序表存儲(chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn):

優(yōu)點(diǎn):

邏輯相鄰,物理相鄰;可隨機(jī)存取任一元素;存儲(chǔ)空間使用緊湊;

缺點(diǎn):

插入、刪除操作需要移動(dòng)大量的元素;預(yù)先分配空間需按最大空間分配,利用不充分;

表容量難以擴(kuò)充;

線性表的應(yīng)用:

一般線性表的合并:★★★

算法2.1:LA=(7,5,3,11) ??LB=(2,6,3)

合并后 ?LA=(7,5,3,11,2,6)

算法思想:擴(kuò)大線性表LA,將存在于線性表LB中而不存在于線性表LA中的數(shù)據(jù)元素插入到線性表LA中去。只要從線性表LB中依次取得每個(gè)數(shù)據(jù)元素,并依值在線性表LA中進(jìn)行查訪,若不存在,則插入之。

有序表的合并:★★★

算法2.2:LA=(3,5,8,11) ?LB=(2,6,8,9,11,15,20)

則 LC=(2,3,5,6,8,9,11,11,15,20)

算法思想:首先創(chuàng)建一個(gè)空表LC,通過比較指針pa和pb所指向的元素的值,依次從LA或LB中“摘取”元素值較小的結(jié)點(diǎn)插入到LC表的最后,當(dāng)其中一個(gè)表變空是,說明此表的元素已歸并完,則只要將另一個(gè)非空表的剩余結(jié)點(diǎn)依次插入在LC表的最后即可。

線性鏈表:

線性鏈表的插入:插入元素師,指針的指向變化:

?

上述指針修改用語(yǔ)句描述即為:s->next=p->next; p->next=s;

單鏈表的插入:★★★

void ?insertnode(linklist ?head,datetype ?x,int ?i){

???????listnode ?* p,*q;

???????p=getnode(head,i-1);

???????if(p==NULL)

???????????error(〝position ?error〞);

????????q=(listnode *)

???????malloc(sizeof(listnode));

????????q–>data=x;

????????q–>next=p–next;

?????????p–>next=q;

??????}

課本中:

s=new LNode;

s->data =e;

s->next=p->next;

p->next=s;

線性鏈表的刪除:刪除元素,指針的指向變化:

?

上述指針修改用語(yǔ)句描述即為:p->next=p->next->next;

單鏈表的刪除:★★★

void ?deletelist(linklist head, int i)

???{??listnode * p, *r;

??????p=getnode(head,i-1);

??????if(p= =NULL ||

????????p–>next= =NULL)

??????return ERROR;

??????r=p–>next;

??????p–>next=r–>next;

???????free( r ) ;???}

課本中:

q=p->next;

p->next=q->next;

單鏈表特點(diǎn):

它是一種動(dòng)態(tài)結(jié)構(gòu),整個(gè)存儲(chǔ)空間為多個(gè)鏈表共用;

不需預(yù)先分配空間;

指針占用額外存儲(chǔ)空間;

不能隨機(jī)存取,查找速度慢。

第三章 棧和隊(duì)列

棧的類型定義:

(Stack)是限制在表的一端進(jìn)行插入和刪除運(yùn)算的線性表,通常稱插入、刪除的這一端為棧頂(Top),另一端為棧底(Bottom)。當(dāng)表中沒有元素時(shí)稱為空棧。

假設(shè)棧S=(a1,a2,a3,…an),則a1稱為棧底元素,an為棧頂元素。棧中元素按a1,a2,a3,…an的次序進(jìn)棧,退棧的第一個(gè)元素應(yīng)為棧頂元素。即,棧的修改是按后進(jìn)先出的原則進(jìn)行的。因此,棧稱為后進(jìn)先出表(LIFO)。

棧的進(jìn)棧、出棧順序:

例:★★★

對(duì)于一個(gè)棧,給出輸入項(xiàng)A、B、C,如果輸入項(xiàng)序列由ABC組成,試給出所有可能的輸出序列。

??A進(jìn) A出 B進(jìn) B出 C進(jìn) C出 ????????ABC

??A進(jìn) A出 B進(jìn) C進(jìn) C出 B出 ????????ACB

??A進(jìn) B進(jìn) B出 A出 C進(jìn) C出 ????????BAC

??A進(jìn) B進(jìn) B出 C進(jìn) C出 A出 ????????BCA

??A進(jìn) B進(jìn) C進(jìn) C出 B出 A出 ????????CBA

不可能產(chǎn)生輸出序列CAB

棧的應(yīng)用:數(shù)值轉(zhuǎn)換[大題]

算法思想:首先將按照上述計(jì)算過程中得到的八進(jìn)制樹的各位依次進(jìn)棧,然后將棧中的八進(jìn)制數(shù)依次出棧輸出,輸出結(jié)果就是該是十進(jìn)制數(shù)轉(zhuǎn)換得到的八進(jìn)制數(shù)。

N=(N div d)×d + N mod d (其中:div 為整除運(yùn)算,mod 為求余運(yùn)算)

例如 (1348)10=(2504)8,其運(yùn)算過程如下:

N ?????????N div 8 ???N mod 8

1348 ???????168 ????????????4

168 ????????21 ?????????????0

21 ?????????2 ??????????????5

2 ??????????0 ??????????????2

算法:【此為課件算法同課本算法一致】★★★

?????void conversion(?) {

?????????????initstack ( s );//構(gòu)造空棧

?????????????scanf ( “ % ” , n);

?????????????while( n ){

???????????????????push ( s , n % 8 );

???????????????????n = n / 8;

?????????????????}

?????????????while( ! Stackempty ( s )){//當(dāng)棧非空時(shí)

???????????????????pop ( s , e );

???????????????????printf ( “ % d ” , e );}?}//conversion

隊(duì)列的類型定義:

定義:隊(duì)列是限定只能在表的一端進(jìn)行插入,在表的另一端進(jìn)行刪除的線性表

隊(duì)尾(rear):允許插入的一端

隊(duì)頭(front):允許刪除的一端

隊(duì)列特點(diǎn):先進(jìn)先出 ( FIFO )

第四章 串、數(shù)組和廣義表

串的類型定義:串是字符串的簡(jiǎn)稱。它是一種在數(shù)據(jù)元素的組成上具有一定約束條件的線性表,即要求組成線性表的所有數(shù)據(jù)元素都是字符,所以,人們經(jīng)常又這樣定義串:串是一個(gè)有窮字符序列。

串一般記作:

?????????????s= “a1a2...an” ???(n0)

?????????????其中,s是串的名稱,用雙引號(hào)(“”)括起來的字符序列是串的值;ai可以是字母、數(shù)字或其他字符;串中字符的數(shù)目n被稱作串的長(zhǎng)度。當(dāng)n=0時(shí),串中沒有任何字符,其串的長(zhǎng)度為0,通常被稱為空串。

子串、主串:串中任意連續(xù)的字符組成的子序列被稱為該串的子串。包含子串的串又被稱為該子串的主串。

廣義表的定義:

廣義表是n(n>=0)個(gè)元素a1,a2,a3,…,an的有限序列,其中ai或者是原子項(xiàng),或者是一個(gè)廣義表。通常記作LS=(a1,a2,a3,…,an)。LS是廣義表的名字,n為它的長(zhǎng)度。若ai是廣義表,則稱它為L(zhǎng)S的子表。

廣義表的結(jié)構(gòu)特點(diǎn):

1) ?廣義表的元素可以是子表,而子表的元素還可以是子表……廣義表是一個(gè)多層次的結(jié)構(gòu)

2) ?廣義表可為其他廣義表所共享

3) ?廣義表可以是一個(gè)遞歸的表,即廣義表也可以是其本身的一個(gè)子表

廣義表的兩個(gè)重要運(yùn)算:取表頭GetHead(LS),取表尾GetTail(LS)

任何一個(gè)非空廣義表

?????LS = ( a1, a2, …, an )

均可分解為

????表頭?Head(LS) = a1 ??

????表尾?Tail(LS) = ( a2, …, an )

兩部分。

例如:★★★

已知廣義表LS=(a,(b,c,d),c),運(yùn)用GetHead和GetTail函數(shù)取出原子d的運(yùn)算過程為:GetHead(GetTail(GetTail(GetHead(GetTail(LS)))))

第五章 樹和二叉樹

數(shù)的定義:

樹(tree)是n(n≥0)個(gè)結(jié)點(diǎn)的有限集T,其中:

有且僅有一個(gè)特定的結(jié)點(diǎn),稱為樹的根(root);

當(dāng)n>1時(shí),其余結(jié)點(diǎn)可分為m(m>0)個(gè)互不相交的有限集T1,T2,……Tm,其中每一個(gè)集合本身又是一棵樹,稱為根的子樹(subtree)。

特點(diǎn):

樹中至少有一個(gè)結(jié)點(diǎn):根

樹中各子樹是互不相交的集合

線性結(jié)構(gòu)與樹形結(jié)構(gòu)的區(qū)別

線性結(jié)構(gòu)

樹形結(jié)構(gòu)

第一個(gè)數(shù)據(jù)元素(無前驅(qū)) ??????????????????

根結(jié)點(diǎn) (無前驅(qū))

最后一個(gè)數(shù)據(jù)元素(無后繼) ?????????????????????

多個(gè)葉子結(jié)點(diǎn)(無后繼)

其它數(shù)據(jù)元素(一個(gè)前驅(qū),一個(gè)后繼)

其它數(shù)據(jù)元素(一個(gè)前驅(qū)、多個(gè)后繼)

樹的基本術(shù)語(yǔ):

結(jié)點(diǎn)(node) :表示樹中的元素,包括數(shù)據(jù)元素及若干指向其子樹的分支

結(jié)點(diǎn)的度(degree) :結(jié)點(diǎn)擁有的子樹數(shù)

樹的度 : 一棵樹中最大的結(jié)點(diǎn)度數(shù)

葉子(leaf) :度為0的結(jié)點(diǎn)(終端結(jié)點(diǎn))

孩子(child) :結(jié)點(diǎn)子樹的根稱為該結(jié)點(diǎn)的~~

雙親(parents) :孩子結(jié)點(diǎn)的上層結(jié)點(diǎn)叫該結(jié)點(diǎn)的~~

兄弟(sibling) :同一雙親的孩子

子孫 : 以某結(jié)點(diǎn)為根的子樹中的所有結(jié)點(diǎn)都被稱為是該結(jié)點(diǎn)的~~

祖先 :從根結(jié)點(diǎn)到該結(jié)點(diǎn)路徑上的所有結(jié)點(diǎn)

堂兄弟 :雙親在同一層的結(jié)點(diǎn)互為~~

結(jié)點(diǎn)的層次(level) : 從根結(jié)點(diǎn)算起,根為第一層,它的孩子為第二層……

深度(depth) : 樹中結(jié)點(diǎn)的最大層次數(shù)

森林(forest) : m(m30)棵互不相交的樹的集合

有序樹、無序樹 : 如果樹中每棵子樹從左向右的排列擁有一定的順序,不得互換,則稱為有序樹,否則稱為無序樹

對(duì)于課本P96樹形圖:★★★

結(jié)點(diǎn)A的度:3

結(jié)點(diǎn)B的度:2

結(jié)點(diǎn)M的度:0

結(jié)點(diǎn)A的層次:1

結(jié)點(diǎn)M的層次:4

結(jié)點(diǎn)B,C,D為兄弟

結(jié)點(diǎn)K,L為兄弟

葉子:K,L,F(xiàn),G,M,I,J

結(jié)點(diǎn)A的孩子:B,C,D

結(jié)點(diǎn)B的孩子:E,F(xiàn)

結(jié)點(diǎn)I的雙親:D

結(jié)點(diǎn)L的雙親:E

結(jié)點(diǎn)F,G為堂兄弟

結(jié)點(diǎn)A是結(jié)點(diǎn)F,G的祖先

樹的深度:4

樹的度:3

二叉樹的定義:

二叉樹是n(n≥0)個(gè)結(jié)點(diǎn)的有限集,它或?yàn)榭諛?n=0),或由一個(gè)根結(jié)點(diǎn)和兩棵分別稱為左子樹和右子樹的互不相交的二叉樹構(gòu)成。

特點(diǎn)

每個(gè)結(jié)點(diǎn)至多有二棵子樹(即不存在度大于2的結(jié)點(diǎn));

二叉樹的子樹有左、右之分,且其次序不能任意顛倒。

二叉樹的性質(zhì):

性質(zhì)1:在二叉樹的第i層上最多有2i-1個(gè)結(jié)點(diǎn)(i1);

性質(zhì)2:深度為K的二叉樹最多有2K-1個(gè)結(jié)點(diǎn)?(K≥1);

性質(zhì)3: 對(duì)任何一棵二叉樹T,如果其終端結(jié)點(diǎn)數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1;

完全二叉樹

定義:一棵深度為h,具有n個(gè)結(jié)點(diǎn)的二叉樹,若將它與一棵同深度的滿二叉樹中的所有結(jié)點(diǎn)按從上到下,從左到右的順序分別進(jìn)行編號(hào),且該二叉樹中的每個(gè)結(jié)點(diǎn)分別與滿二叉樹中編號(hào)為1~n的結(jié)點(diǎn)位置一一對(duì)應(yīng),則稱這棵二叉樹為完全二叉樹。

特點(diǎn):

葉子結(jié)點(diǎn)只可能在層次最大的兩層上出現(xiàn);

對(duì)任一結(jié)點(diǎn),若其右分支下子孫的最大層次為L(zhǎng),則其左分支下子孫的最大層次必為L(zhǎng)或L+1。

性質(zhì)4:具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為?log2n?+1。(其中,?log2n??的結(jié)果是不大于log2n的最大整數(shù)。)

性質(zhì)5:對(duì)于有n個(gè)結(jié)點(diǎn)的完全二叉樹中的所有結(jié)點(diǎn)按從上到下,從左到右的順序進(jìn)行編號(hào),則對(duì)任意一個(gè)結(jié)點(diǎn)i (1≤i≤n),都有:

(1)如果i=1,則結(jié)點(diǎn)i是這棵完全二叉樹的根,沒有雙親。否則其雙親結(jié)點(diǎn)的編號(hào)為 ?i/2?;

(2)如果2i>n,則結(jié)點(diǎn)i沒有左孩子。否則其左孩子結(jié)點(diǎn)的編號(hào)為2i;

(3)如果2i+1>n,則結(jié)點(diǎn)i沒有右孩子。否則其右孩子結(jié)點(diǎn)的編號(hào)為2i+1。 ???????????

遍歷二叉樹:★★★

先序遍歷:先訪問根結(jié)點(diǎn),然后分別先序遍歷左子樹、右子樹【包絡(luò)法】

中序遍歷:先中序遍歷左子樹,然后訪問根結(jié)點(diǎn),最后中序遍歷右子樹【垂直映射法】

后序遍歷:先后序遍歷左、右子樹,然后訪問根結(jié)點(diǎn)

例:(1)

先序遍歷:A.B.D.E.F.G.K.M.C.H.J ??????????????

中序遍歷:D.B.F.E.K.A.M.G.H.C.J ??????????????????????P105 貼紙(1)

后序遍歷:D.F.K.M.A.E.B.H.J.C.G

層次遍歷:A.B.C.D.E.H.J.F.G.K.M

例:(2)

先序遍歷:A.B.E.F.I.G.C.D.H.J.K.L.N.O.M

后序遍歷:E.I.F.G.B.C.J.K.N.O.L.M.H.D.A ????????????????P105貼紙(2)

層次遍歷:A.B.C.D.E.F.G.H.I.J.K.L.M.N.O

赫夫曼樹遍歷:★★★

例:W={ 5,29,7,8,14,23,3,11 }

?

第六章 圖

圖的定義:圖(Graph):圖G是由兩個(gè)集合V(G)和E(G)組成的,記為:G=(V,E)

其中:V(G)是頂點(diǎn)的非空有限集;E(G)是邊的有限集合,邊是頂點(diǎn)的無序?qū)蛴行驅(qū)Α?/p>

有向圖,無向圖

頂點(diǎn)的度:無向圖中,頂點(diǎn)的度為與每個(gè)頂點(diǎn)相連的邊數(shù);

有向圖中,頂點(diǎn)的度分成入度與出度

入度:以該頂點(diǎn)為頭的弧的數(shù)目

出度:以該頂點(diǎn)為尾的弧的數(shù)目

路徑:路徑是頂點(diǎn)的序列V={Vi0,Vi1,……Vin},滿足(Vij-1,Vij)??E 或?<Vij-1,Vij>?E,(1<j≥n)

路徑長(zhǎng)度:沿路徑邊的數(shù)目或沿路徑各邊權(quán)值之和

回路:第一個(gè)頂點(diǎn)和最后一個(gè)頂點(diǎn)相同的路徑叫~

簡(jiǎn)單路徑:序列中頂點(diǎn)不重復(fù)出現(xiàn)的路徑叫~

簡(jiǎn)單回路:除了第一個(gè)頂點(diǎn)和最后一個(gè)頂點(diǎn)外,其余頂點(diǎn)不重復(fù)出現(xiàn)的回路叫~

連通:從頂點(diǎn)V到頂點(diǎn)W有一條路徑,則說V和W是連通的

連通圖:圖中任意兩個(gè)頂點(diǎn)都是連通的叫~

連通分量:非連通圖的每一個(gè)連通部分叫~

強(qiáng)連通圖:有向圖中,如果對(duì)每一對(duì)Vi,Vj?V, Vi?Vj,從Vi到Vj 和從Vj到?Vi都存在路徑,則稱G是~

鄰接表:

?

深度遍歷:

方法:從圖的某一頂點(diǎn)V0出發(fā),訪問此頂點(diǎn);然后依次從V0的未被訪問的鄰接點(diǎn)出發(fā),深度優(yōu)先遍歷圖,直至圖中所有和V0相通的頂點(diǎn)都被訪問到;若此時(shí)圖中尚有頂點(diǎn)未被訪問,則另選圖中一個(gè)未被訪問的頂點(diǎn)作起點(diǎn),重復(fù)上述過程,直至圖中所有頂點(diǎn)都被訪問為止。

?圖一

?圖二

?圖三

?圖四

必須說明,若不給定存儲(chǔ)結(jié)構(gòu),深度優(yōu)先遍歷的結(jié)果不唯一。因?yàn)槟膫€(gè)頂點(diǎn)是第一鄰接點(diǎn)未確定。給定存儲(chǔ)結(jié)構(gòu)后,深度優(yōu)先遍歷的結(jié)果是唯一的。

廣度遍歷:【不考,比較深度遍歷記憶】

方法:從圖的某一頂點(diǎn)V0出發(fā),訪問此頂點(diǎn)后,依次訪問V0的各個(gè)未曾訪問過的鄰接點(diǎn);然后分別從這些鄰接點(diǎn)出發(fā),廣度優(yōu)先遍歷圖,直至圖中所有已被訪問的頂點(diǎn)的鄰接點(diǎn)都被訪問到;若此時(shí)圖中尚有頂點(diǎn)未被訪問,則另選圖中一個(gè)未被訪問的頂點(diǎn)作起點(diǎn),重復(fù)上述過程,直至圖中所有頂點(diǎn)都被訪問為止。

圖一中:廣度遍歷:V1T?V2 TV3 T?V4 TV5 TV6 TV7 TV8

第七章 查找

折半查找法(考圖形過程):★★★

(1)有序表:{ 5,16,20,27,30,36,44,55,60,67,71}

課本P167,例7.1 ?P168 圖7.1

?

(2)折半查找過程示例:有序表{5,13,19,21,37,56,64,75,80,88,92}

?

?

?

第八章 排序

★★★ 冒泡排序:

排序過程:

將第一個(gè)記錄的關(guān)鍵字與第二個(gè)記錄的關(guān)鍵字進(jìn)行比較,若為逆序r[1].key>r[2].key,則交換;然后比較第二個(gè)記錄與第三個(gè)記錄;依次類推,直至第n-1個(gè)記錄和第n個(gè)記錄比較為止——第一趟冒泡排序,結(jié)果關(guān)鍵字最大的記錄被安置在最后一個(gè)記錄上

對(duì)前n-1個(gè)記錄進(jìn)行第二趟冒泡排序,結(jié)果使關(guān)鍵字次大的記錄被安置在第n-1個(gè)記錄位置

重復(fù)上述過程,直到“在一趟排序過程中沒有進(jìn)行過交換記錄的操作”為止。

?

課件上的算法:

void BubbleSort(int a[], int n)

{

????int i, j, exchange; ? ? ?

????int tmp;

????for (i = 0; i < n-1; i++)

{ exchange=0;

????for (j = n-1; j>i; j--) ??//比較,找出最小關(guān)鍵字的記錄

????if (a[j] < a[j -1])

????{

????????tmp = a[j]; ???????????????//a[j]與a[j-1]進(jìn)行交換,將最小關(guān)鍵字記錄前移

????????a[j] = a[j - 1];

????????a[j -1] = tmp;

????????exchange=1;

????}

????if (exchange==0) ??//本趟未發(fā)生交換時(shí)結(jié)束算法

?????????return; }}

課本上的偽碼算法:

void BubbleSort(SqList &L){

//對(duì)順序表L做冒泡排序

m=L.length-1;flag=1;

while((m>0)&&(flag==1)){

flag=0;//flag置為0,如果本趟排序沒有發(fā)生交換,則不會(huì)執(zhí)行下一趟排序

for(j=1;j<=m;j++)

??if(L.r[j].key>L.r[j+1].key){

flag=1;//flag置為1,表示本趟排序發(fā)生了交換

t=L.r[j];L.r[j]=L.r[j+1];L.r[j+1]=t;//交換前后兩個(gè)記錄

}//if

--m;

}//while

}//BubbleSort

C語(yǔ)言冒泡排序法:

#include<stdio.h>

void main()

{

int i,j,m, a[10];

printf("用冒泡排序法對(duì)a數(shù)組10個(gè)數(shù)組元素從小到大進(jìn)行排序。\n");

printf("Enter the numbers:\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

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

for(j=0;j<10-i;j++)

if(a[j+1]<a[j])

{m=a[j];a[j]=a[j+1];a[j+1]=m;}

for(i=0;i<10;i++)

printf("%5d",a[i]);

}


數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)-期末復(fù)習(xí)匯總的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
三都| 峨边| 开鲁县| 东海县| 崇仁县| 无棣县| 华安县| 丹江口市| 武鸣县| 德昌县| 岐山县| 同心县| 克拉玛依市| 明溪县| 顺昌县| 肥东县| 东宁县| 平谷区| 松桃| 靖江市| 永吉县| 舟曲县| 重庆市| 武隆县| 栾城县| 开阳县| 平和县| 武邑县| 凯里市| 新建县| 民乐县| 沂南县| 山阴县| 石嘴山市| 兴山县| 文安县| 南漳县| 察哈| 利津县| 广河县| 延安市|