知識點總結報告 1 22

2022-05-15 08:00:01 字數 1613 閱讀 6422

知識點:棧,棧是一種c資料結構,是一種只能在表尾進行增刪操作的線性表,特點是後進入的資料先出來,最先進入的資料最後出來,即filo(first in last out)就像桶裝薯片一樣。棧是自己定義的結構體,有順序棧和鍊錶棧。乙個順序棧至少包含乙個陣列,乙個指向已經存入資料的頂部指標和底部指標。佇列,佇列和棧極其相似,不同處在於佇列是只能在表頭進行操作的,即fifl(first in first out)先進先出,就像排隊一樣。對棧和佇列的操作有:初始化、求長度、獲取頂部元素、判斷為空、清空、銷毀、壓入資料。

例題:解法:這道題既可以用陣列來解,又可以用棧與佇列解。

分析:若通過陣列解答,此題定義了不少變數,巢狀了多次,注意變數的作用域,第16行定義的字元陣列占用空間很小卻能每次都存進inorout,還避免了初始化和定址的麻煩。定義了i,index,j三個作為陣列的下標這是因為在處理過程中,需要記錄存入的資料,需要用下標來判斷,還要實現兩種輸出所以定義三個能盡量避免混淆。程式第22、30、44、53都是i=index;這是因為在i用於判斷輸出時應不應該輸出none,但注意i必須實時更新。最後不要忘了第61行的n--;

題解(陣列):

1 #include 2 #include 

3int

main()

4,index=0,j=0;10

char fl[5

];11 scanf("

%d %s

",&n,fl);

12while

(n)13

24else

2532

else

33 printf("

none\n");

34}35}

36else

3746

else

4755

else

5659}60

}61 n--;62}

63}64return0;

65 }

題解(棧與佇列):

1 #include 2 #include 

3#define max 10000

4 typedef struct

stack

5stack;

10int

main()11;

18 s.top=&s.data[0

];19 s.bottom=&s.data[0

];20

char fl[5

];21

intn;

22 scanf("

%d %s

",&n,fl);

23while(n--)

2434

else

3541

else

4245}46

}47else

4854

else

5561

else

6265}66

}67}68

}69return0;

70 }

第31、38、51、58行內下標不能用*s.top++等,這是因為那是在引用陣列內的元素,不是獨立的。

知識點總結報告 2 3

知識點 列舉 列舉 enumeration 是c的基礎資料結構之一不是構造資料結構,即一一枚舉之意。在列舉思想就是把有限個可能全部列舉出來。列舉法的本質就是從所有候選答案中去搜尋正確的解,使用該演算法需要滿足兩個條件 1 可預先確定候選答案的數量 2 候選答案的範圍在求解之前必須有乙個確定的集合。列...

知識點總結報告 1 26

知識點 排序 在c語言中,對一組資料進行排序有多種方法 交換排序 選擇排序 氣泡排序 插入排序 希爾排序 歸併排序 以及快速排序等 其中氣泡排序和交換排序比較簡單,交換排序是又是選擇排序的基礎。以下這個例子包含幾種排序方法,以對分數降序排序為背景,使用鍊錶,順便填補對鍊錶中資料排序的空白。1 inc...

知識點總結報告 1 20

素數 知識點 判斷乙個數n是素數的方法就是如果從2到sqtr n 之間沒有乙個數能整除n,那麼n就是素數。例題 分析 首先輸入乙個數n然後從n 2 m 開始往下判斷是否是素數,如果是則進一步判斷n m是否是素數,如果都是則輸出並跳出迴圈。題解 1 include 2 include 3 int is...