﻿1
00:00:23,970 --> 00:00:27,970
(อาจารย์สุธาสินี) ทำไมเป็นอย่างนั้นล่ะ

2
00:00:27,973 --> 00:00:31,973
คราวนี้ ได้ยินครูนะ คราวที่แล้ว

3
00:00:31,975 --> 00:00:35,975
นะคะ เราพูดถึงในเรื่องของ

4
00:00:35,977 --> 00:00:39,977
เหมือนล่ามไม่ได้ยินเลย อ๋อ ค่ะ

5
00:00:39,981 --> 00:00:43,981
คราวที่แล้วเราพูดถึงเรื่อง list นะคะ lis

6
00:00:43,983 --> 00:00:47,983
t ตัวนี้นะ แล้วเราก็ทำข้อสอบไปแล้วนะคะ

7
00:00:47,986 --> 00:00:51,986
เรื่อง List

8
00:00:59,994 --> 00:01:03,994
ได้ไหมคะ

9
00:01:08,001 --> 00:01:12,001
ได้ยินไหมคะ

10
00:01:12,002 --> 00:01:16,002
ยังไม่ได้ยิน

11
00:01:44,023 --> 00:01:48,023
คราวที่แล้วนะคะ เราพูดถึงเรื่อง List นะ ทุกคน

12
00:01:48,026 --> 00:01:52,026
จำได้นะคะ อันนี้คือ List  นะ ที่ครูยกตัวอย่างมาให้

13
00:01:52,027 --> 00:01:56,027
List  ตัวนี้มีขนาดเท่ากับเท่าไ

14
00:01:56,030 --> 00:02:00,030
ร มีขนาดเท่าไร ขนาด คือ

15
00:02:00,031 --> 00:02:04,031
มีจำนวนเท่าไร มี 5 คนอื่นมีเท่าไรคะ

16
00:02:04,035 --> 00:02:08,035
5 โอเค 5 นะคะ

17
00:02:08,038 --> 00:02:12,038
List  ที่เราเห็นในหน้าจอตรงนี้

18
00:02:12,039 --> 00:02:16,039
จะมีอยู่ 5 ตัว ถูกไหมคะ มีข้อมูลอยู่ 5 ตัว

19
00:02:16,042 --> 00:02:20,042
มี 1 มี 2 มี 3 มี 4

20
00:02:20,046 --> 00:02:24,046
แล้วก็มี 5 มีทั้งหมด 5 ตัวนะคะ คราวนี้

21
00:02:24,050 --> 00:02:28,050
แล้วรู้ได้อย่างไรว่ามันคือ List   เห็น

22
00:02:28,053 --> 00:02:32,053
ก้ามปูเปิด-ก้ามปูปิดไหมคะ

23
00:02:32,055 --> 00:02:36,055
ตรงนี้เป็นสัญลักษณ์ที่บอกว่าการเก็บข้อมูลลักษณะ

24
00:02:36,058 --> 00:02:40,058
แบบนี้มีชื่อเรียกว่า "List " นะคะ

25
00:02:40,061 --> 00:02:44,061
จะเก็บค่าของข้อมูล

26
00:02:44,064 --> 00:02:48,064
ใน List  index

27
00:02:48,067 --> 00:02:52,067
ก็คือหมายเลข ถูกไหมคะ คือ หมายเลขของข้อมูล

28
00:02:52,068 --> 00:02:56,068
นี่ เราเริ่มต้นที่หมายเลขอะไรเอ่ย

29
00:02:56,069 --> 00:03:00,069
พอเราวาดเป็นช่องใช่ไหมคะ

30
00:03:00,072 --> 00:03:04,072
ใน List  นี่ ถ้าเราลองวาด

31
00:03:04,076 --> 00:03:08,076
การจัดเก็บนะ ก็จะเป็น 1

32
00:03:12,079 --> 00:03:16,079
แล้วก็จะเก็บข้อมูลลงไปในช่องแบบนี้

33
00:03:16,080 --> 00:03:20,080
นะคะ หมายเลขช่อง หรือว่า

34
00:03:20,080 --> 00:03:24,080
Index ตัวแรก เราจะเริ่มต้นที่เท่าไรคะ ตรงไ

35
00:03:24,084 --> 00:03:28,084
นี้ index เราจะเริ่มที่เราไรเอ่ย

36
00:03:28,084 --> 00:03:32,084
0 นะ ใช่ไหมคะ

37
00:03:32,085 --> 00:03:36,085
1 2 3 แล้วก็ 4

38
00:03:36,088 --> 00:03:40,088
ก็คือหมายเลขช่อง ถ้าเราวาดรูปให้

39
00:03:40,091 --> 00:03:44,091
เป็นรูปสี่เหลี่ยมในการจัดเก็บข้อมูล แล้วเวลาครูเข้าถึง

40
00:03:44,092 --> 00:03:48,092
ข้อมูลที่อยู่ใน List  ตอนนี้

41
00:03:48,095 --> 00:03:52,095
ครูตั้งชื่อ List  ตัวนี้มีชื่อว่า x

42
00:03:52,097 --> 00:03:56,097
x index 3

43
00:03:56,100 --> 00:04:00,100
ตอบเท่ากับเท่าไรเอ่ย index

44
00:04:00,103 --> 00:04:04,103
เป็น 3 ตัวนี้ตอบ 4 ใช่

45
00:04:04,106 --> 00:04:08,106
ตรงนี้ต้องตอบว่า 4 นะคะ ทุกคนจำได้นะ

46
00:04:08,106 --> 00:04:12,106
แล้วถ้า x

47
00:04:12,107 --> 00:04:16,107
เราต้องการหลาย ๆ ค่า 2 จนถึง 4

48
00:04:16,107 --> 00:04:20,107
จะตอบเท่ากับเท่าไรคะ

49
00:04:20,110 --> 00:04:24,110
3 กับ...

50
00:04:24,114 --> 00:04:28,114
3 กับอะไรเอ่ย 4 ใช่ไหม

51
00:04:28,118 --> 00:04:32,118
คือ 3 กับ 4 นะ มันเริ่มต้นที่ 2 ใช่ไหมคะ ก็คือ

52
00:04:32,119 --> 00:04:36,119
เริ่มต้นที่ตัวนี้

53
00:04:36,122 --> 00:04:40,122
ถึง 4 แล้วก็ลดลงมา 1 ช่อง ก็จะได้ข้อมูลตัวนี้

54
00:04:40,125 --> 00:04:44,125
ก็คือ 3 กับ 4

55
00:04:44,127 --> 00:04:48,127
คราวนี้ แล้วเราเอา

56
00:04:48,127 --> 00:04:52,127
List  มาทำอะไรนะคะ เราเก็บข้อมูล

57
00:04:52,127 --> 00:04:56,127
ที่อยู่ในรูปแบบ List   แล้วเราเอามาใช้ทำอะไรนะคะ

58
00:04:56,129 --> 00:05:00,129
วันนี้เราจะพูดถึงโครงสร้างอีกแบบหนึ่ง

59
00:05:00,130 --> 00:05:04,130
ที่มีชื่อว่า stack นะ

60
00:05:04,130 --> 00:05:08,130
นะคะ สแตกตัวนี้

61
00:05:08,134 --> 00:05:12,134
จะใช้วิธีการเก็บข้อมูลแบบลิสต์

62
00:05:12,135 --> 00:05:16,135
นะคะ แล้วลักษณะแบบไหน

63
00:05:16,138 --> 00:05:20,138
ที่เราจะเรียกว่า "stack" นะคะ ดูด้วยกัน

64
00:05:20,141 --> 00:05:24,141
เขาบอกว่า Stack

65
00:05:24,142 --> 00:05:28,142
ก็คือการที่เราใส่ข้อมูลเข้าไป แล้วก็ดึงออกมา

66
00:05:28,145 --> 00:05:32,145
นะคะ แล้วข้อมูล

67
00:05:32,145 --> 00:05:36,145
ที่ถูกใส่เข้าไปใน Stack ก่อน จะถูก

68
00:05:36,149 --> 00:05:40,149
เอาออกมาใช้ทีหลัง อันนี้คือ

69
00:05:40,152 --> 00:05:44,152
วิธีการเก็บข้อมูลแบบ stack หรือเ

70
00:05:44,155 --> 00:05:48,155
ราจะเรียกสั้น ๆ ว่า เข้าทีหลังออกก่อน

71
00:05:48,158 --> 00:05:52,158
เข้าก่อนออกทีหลัง ความหมายเหมือนกัน

72
00:05:56,163 --> 00:06:00,163
ยกตัวอย่าง เช่น ทุกคนเคย

73
00:06:00,165 --> 00:06:04,165
ไปที่ร้านก๋วยเตี๋ยวไหมคะ ทุกคนเคยไปร้านก๋วยเตี๋ยวนะ

74
00:06:04,168 --> 00:06:08,168
แล้วเห็นถ้วยก๋วยเตี๋ยวก่อนที่เขาจะ

75
00:06:08,171 --> 00:06:12,171
เอามาใส่เส้น ใส่เครื่องปรุง ใส่หมูให้เรา

76
00:06:12,172 --> 00:06:16,172
ชามก๋วยเตี๋ยวมันเรียงขึ้นไปแบบนี้

77
00:06:16,176 --> 00:06:20,176
ใช่ไหมคะ เวลาแม่ค้าเขาจะเอาชามก๋วยเตี๋ยวมาใส่ให้เรา

78
00:06:20,176 --> 00:06:24,176

79
00:06:24,179 --> 00:06:28,179

80
00:06:28,183 --> 00:06:32,183

81
00:06:32,183 --> 00:06:36,183
เขาเอาชากที่อยู่ข้างบน หรือข้างล่าง เขาเอาข้างบนมาทำให้เรา

82
00:06:36,184 --> 00:06:40,184
แล้วเวลาเขาล้างจานเสร็จแล้วนี่ เอาจาน

83
00:06:40,186 --> 00:06:44,186
มาซ้อนข้างล่างหรือซ้อนข้างบน ซ้อนข้างบน

84
00:06:44,190 --> 00:06:48,190
ใช่ไหมคะ เพราะฉะนั้น จานที่

85
00:06:48,194 --> 00:06:52,194
อยู่บนสุด จะถูกเอาออกมาใช้ก่อน

86
00:06:52,194 --> 00:06:56,194
และจานที่อยู่บนสุดนะคะ จะถูก

87
00:06:56,198 --> 00:07:00,198
เอาเข้ามาเก็บทีหลัง อันนี้คือรูปแบบ

88
00:07:00,201 --> 00:07:04,201
ของ Stack เช่น นะคะ เช่น ๆ

89
00:07:04,209 --> 00:07:08,206
สมมติ ครูมีกระดาษ 1 แผ่นนะ

90
00:07:08,206 --> 00:07:12,206
ครูมีกระดาษอยู่ 1 แผ่น ทุกคนดูนะคะ

91
00:07:12,207 --> 00:07:16,207
กระดาษแผ่นที่ 1 ครูจะใส่กระดาษแผ่นที่ 2

92
00:07:16,212 --> 00:07:20,212
เห็นไหมคะ ครูซ้อนกระดาษแผ่นที่ 2 อยู่ข้างบน

93
00:07:20,215 --> 00:07:24,215
ครูใส่ ครูใส่กระดาษ

94
00:07:24,218 --> 00:07:28,218
แผ่นที่ 3 เข้าไปนะคะ แล้วครูก็ใส่

95
00:07:28,219 --> 00:07:32,219
กระดาษแผ่นที่ 4 เข้าไปในมือครู เวลา

96
00:07:32,220 --> 00:07:36,220
ครูจะเอาออกมาใช้ ครูจะเอาตัวล่างสุดหรือตัวบนสุดออกไปใช้

97
00:07:36,227 --> 00:07:40,227
ตัวบนสุดถูกไหมคะ

98
00:07:40,231 --> 00:07:44,231
ครูไม่พยายามจะดึงตัวล่างสุดออกมานะ แต่ครูจะหยิบตัวบน

99
00:07:44,234 --> 00:07:48,234
สุดอกไปใช้ ซึ่งตัวบนสุดนี่

100
00:07:48,237 --> 00:07:52,237
คือ กระดาษแผ่นที่เราใส่ไปล่าสุดนะคะ

101
00:07:52,238 --> 00:07:56,238

102
00:07:56,242 --> 00:08:00,242
เราสามารถสรุปได้แบบนี้นะ ข้อมูลที่เข้ามา Stack

103
00:08:00,242 --> 00:08:04,242
ตัวแรกจะอยู่ด้านล่างสุด

104
00:08:04,245 --> 00:08:08,245
ข้อมูลที่หย่อนลงไปใน Stack ตัวแรก จะอยู่ด้านล่างสุดเลย

105
00:08:08,246 --> 00:08:12,246
นะคะ ตัวถัดไปก็จะซ้อนขึ้นมา

106
00:08:12,247 --> 00:08:16,247
เรื่อย ๆ ข้อมูลที่

107
00:08:16,250 --> 00:08:20,250
เข้าไปใน Stack เป็นตัวสุดท้าย

108
00:08:20,253 --> 00:08:24,253
จะอยู่บนสุดนะคะ จะอยู่บนสุด แล้วเวลา

109
00:08:24,255 --> 00:08:28,255
เราเอาข้อมูลใน Stack ออกมาใช้งาน

110
00:08:28,257 --> 00:08:32,257
ข้อมูลที่เข้าไปเป็นตัวล่าสุด

111
00:08:32,258 --> 00:08:36,258
หรือตัวลำดับสุดท้าย จะถูก

112
00:08:36,262 --> 00:08:40,262
ดึงออกมาใช้งานก่อน ตัวไหน

113
00:08:40,265 --> 00:08:44,265
ที่เข้าไปตัวแรกจะถูกเอามาใช้งาน

114
00:08:44,271 --> 00:08:48,270
เป็นตัวสุดท้ายนะคะ เพราะมันอยู่ล่างสุด

115
00:08:48,270 --> 00:08:52,270
เวลาดึงออกมาใช้มันก็ใช้ยากนะ เราต้องใช้ตัวบน ค่อย ๆ ดึงตัวบน

116
00:08:52,270 --> 00:08:56,270
ออกไปก่อน

117
00:08:56,273 --> 00:09:00,273
คราวนี้ เวลาเราเอาข้อมูลใส่ใน Stack

118
00:09:00,276 --> 00:09:04,276
เราพูดถึง Stack ก็เหมือนภาชนะนะ ตอนนี้ทุกคนมอง Stack

119
00:09:04,279 --> 00:09:08,279
เป็นช่องแบบนี้ เป็นช่องสี่เหลี่ย

120
00:09:08,281 --> 00:09:12,281
ม เป็นช่องในแนวตั้ง ถ้าเราพูดถึง Stack นะ

121
00:09:12,282 --> 00:09:16,282
ดูรูปนี้ก่อน อย่างนี้ ก็คือมันจะอยู่ในแนวนอนหรือแนวตั้งก็ได้

122
00:09:16,285 --> 00:09:20,285
มันจะอยู่ในแนวนอนหรือแนวตั้งก็ได้

123
00:09:20,288 --> 00:09:24,288
ตอนนี้ครูให้มองในแนวตั้ง ถ้าพูดถึง Stack ก้คือเป็นชั้น ๆ

124
00:09:24,291 --> 00:09:28,291
เลื่อนขึ้นไปเรื่อย ๆ นะคะ ใน Stack

125
00:09:28,294 --> 00:09:32,294
เราทำอะไรได้บ้าง เราใส่ข้อมูลลงไป

126
00:09:32,295 --> 00:09:36,295
เราดึงข้อมูลออกมา คราวนี้

127
00:09:36,299 --> 00:09:40,299
stack ถ้ามันไม่มีข้อมูลอะไรเลย

128
00:09:40,300 --> 00:09:44,300
เราเรียกว่า "Stack ว่าง"  คือ มันมีค่าว่าง ๆ

129
00:09:44,302 --> 00:09:48,302
ไม่มีตัวเลข ไม่มีตัวอักษรอะไรเลยนะ อันนี้

130
00:09:48,305 --> 00:09:52,305
คือ Stack ว่าง

131
00:09:52,305 --> 00:09:56,305
ถ้าเราจะใส่ข้อมูลลงไปใน Stack

132
00:09:56,308 --> 00:10:00,308
เราจะมีคำสั่งที่ชื่อว่า Push

133
00:10:00,313 --> 00:10:04,313
คือ คำสั่งตัวนี้นะคะ

134
00:10:04,316 --> 00:10:08,316
คำสั่ง Push ก็คือใส่

135
00:10:08,320 --> 00:10:12,320
ข้อมูลลงไปใน Stack ถ้าต้องการเอา

136
00:10:12,321 --> 00:10:16,321
ข้อมูลออกจาก Stack เราใช้คำสั่ง Pop นะคะ

137
00:10:16,324 --> 00:10:20,324
มีอยู่ 2 ตัวที่ทุกคนต้องรู้จัก

138
00:10:20,327 --> 00:10:24,327
เมื่อพูดถึง Stack คือ Push กับ Pop

139
00:10:24,330 --> 00:10:28,330
Push คือ ใส่ ถูกไหม

140
00:10:28,334 --> 00:10:32,334
เอาข้อมูลเข้าไปเก็บ ส่วน Pop ก็คือเอาออกนะคะ Pop คือ เอาออก

141
00:10:36,339 --> 00:10:40,339
คราวนี้มาดูตัวอย่างนะคะ มีแต่ Push กับ Pop

142
00:10:40,342 --> 00:10:44,342
2 ตัว เราเริ่มต้น Stack ไม่มีอะไรเลย

143
00:10:44,344 --> 00:10:48,344
เป็นค่าว่าง ๆ ถูกไหมคะ เป็น Stack ว่าง

144
00:10:48,346 --> 00:10:52,346
ครูบอกว่าครู Push

145
00:10:52,347 --> 00:10:56,347
เห็นไหมคะ คำสั่ง Push Push ค่าอะไร Push ค่า a เมื่อไหร่ก็ตาม

146
00:10:56,350 --> 00:11:00,350
ที่ใช้คำสั่ง Push ต้องบอกด

147
00:11:00,354 --> 00:11:04,354
จะใส่ค่าอะไรด้วยนะคะ

148
00:11:04,356 --> 00:11:08,356
เรา Push ค่า a ลงไป

149
00:11:08,359 --> 00:11:12,359
เห็นไหม มันก็อยู่ด้านล่างสุดนะคะ ถัดมา

150
00:11:12,360 --> 00:11:16,360
ถ้าครูใส่คำสั่ง

151
00:11:16,362 --> 00:11:20,362
ตัวบนก่อน Push b ก็ใส่ b ลงมา เห็นไหมคะ

152
00:11:20,362 --> 00:11:24,362
ถัดจาก a ก็คือ b Push c

153
00:11:24,362 --> 00:11:28,362
c ก็อยู่ถัดขึ้นไป และ Push (D) d อยู่

154
00:11:28,369 --> 00:11:32,367
บนสุดนะคะ เรียงตรามลำดับของการ

155
00:11:32,367 --> 00:11:36,367
ใส่ข้อมูลเข้าไป

156
00:11:36,370 --> 00:11:40,370
คราวนี้ อยากจะเอาออกบ้าง

157
00:11:40,373 --> 00:11:44,373
เอาข้อมูลออกจาก Stack ไปใช้งาน จะใช้คำสั่ง Pop

158
00:11:44,377 --> 00:11:48,377
Pop นะ Pop

159
00:11:48,380 --> 00:11:52,380
แล้วตามด้วยวงเล็บเปิดแล้วก็วงเล็บปิด ไม่ต้องใส่ค่าอะไร

160
00:11:52,381 --> 00:11:56,381
เพราะเราจะไปดึงค่าที่อยู่ใน Stack ออกมา

161
00:12:00,387 --> 00:12:04,387
เราสั่งคำสั่ง Pop เราเอาข้อมูล

162
00:12:04,391 --> 00:12:08,391
บนสุดนะคะ Pop ให้เอาข้อมูลบนสุด

163
00:12:08,391 --> 00:12:12,391
ที่อยู่ใน Stack ดึงออกมา

164
00:12:12,392 --> 00:12:16,392
เพราะฉะนั้น เดิม เป็นแบบนี้ ถูกไหม

165
00:12:16,396 --> 00:12:20,396
ครูใช้คำสั่ง Pop อะไรออกมาเอ่ย

166
00:12:20,398 --> 00:12:24,398
ตัว D Dog จะออกมา เพราะว่า D Dog

167
00:12:24,401 --> 00:12:28,401
อยู่บนสุดนะคะ

168
00:12:28,405 --> 00:12:32,405
ถัดมา

169
00:12:32,406 --> 00:12:36,406
ครู Push Push คือใส่เข้าไป

170
00:12:36,410 --> 00:12:40,410
ตอนนี้ไม่มี D Dog แล้วนะ ครู Push e เห็นไหมคะ เวลา Push

171
00:12:40,412 --> 00:12:44,412
ต้องบอกด้วยว่าเราใส่ค่าอะไร

172
00:12:44,415 --> 00:12:48,415
วงเล็บเปิด แล้วก็ใส่ตัว e วงเล็บปิด ครู Push ค่า e ลงไป

173
00:12:48,416 --> 00:12:52,416
E จะอยู่ด้านบน C เสร็จแล้ว Push

174
00:12:52,416 --> 00:12:56,416
f อีกครั้งหนึ่ง f ก็จะอยู่บนสุดนะคะ

175
00:12:56,419 --> 00:13:00,419
ถัดมา ครู Pop

176
00:13:00,422 --> 00:13:04,422
Pop คือ เอาออก เอาอะไรออก ข้างบนสุดถูกไหมคะ

177
00:13:04,423 --> 00:13:08,423
ก็คือเอา F ออก เพราะฉะนั้น ข้อมูล

178
00:13:08,427 --> 00:13:12,427
จะเหลืออยู่ 4 ตัว ก็คือ a, b, c แล้วก็ e

179
00:13:16,431 --> 00:13:20,431
โอเค ถัดมา

180
00:13:20,434 --> 00:13:24,434
เราแทน Stack ด้วยอะไร

181
00:13:24,437 --> 00:13:28,437
นะคะ อย่างที่ครูบอกว่า

182
00:13:28,441 --> 00:13:32,441
List  จะถูกเอามาใช้แทนนะคะ การจัดเก็บข้อมูล

183
00:13:32,442 --> 00:13:36,442
ใน Stack เราพูดถึง Stack แล้วมันจัดเก็บแบบไหน เราก็ใช้ List

184
00:13:36,447 --> 00:13:40,447
นั่นล่ะในการเก็บข้อมูล

185
00:13:40,450 --> 00:13:44,450
List นะคะ เราสามารถวาดเป็นแนวตั้งหรือแนวนอน

186
00:13:44,453 --> 00:13:48,453
ก็ได้นะ สามารถวาดเป็นแนวนอน

187
00:13:48,454 --> 00:13:52,454
หรือแนวนอนก็ได้ ข้อมูลที่ใส่เข้ามาตัวแรกนะคะ

188
00:13:52,455 --> 00:13:56,455
จะอยู่ที่ index 0 ก็คือข้อมูลตัวแรก

189
00:13:56,458 --> 00:14:00,458
ไล่ไปเรื่อย ๆ จนถึงข้อมูลตัวสุดท้าย

190
00:14:04,466 --> 00:14:08,466
Stack ที่ครูให้มานี่ ที่เก็บอยู่

191
00:14:08,469 --> 00:14:12,469
ในรูปแบบที่เป็น List  นี่

192
00:14:12,470 --> 00:14:16,470
มันมีช่องว่างไหมคะ มันมีที่ว่างให้ใส่ได้อีกไหม Stack รูปนี้

193
00:14:16,473 --> 00:14:20,473
มีอยู่ 4 ช่องด้วยกัน ทุกช่องมีค่าไหมคะ

194
00:14:20,476 --> 00:14:24,476
ทุกช่องมีค่านะ

195
00:14:24,479 --> 00:14:28,479
มันเต็มหรือยังคะ

196
00:14:28,482 --> 00:14:32,482
มันมีที่ว่างให้ใส่อีกไหม มันมีที่ว่างให้ใส่อีกไหมคะ ไม่มีแล้ว

197
00:14:32,483 --> 00:14:36,483
อย่างนี้เรียกว่า Stack เต็มแล้ว

198
00:14:36,484 --> 00:14:40,484
นะคะ คือ ไม่มีช่องว่างให้เราใส่ข้อมูลตัวใหม่ได้แล้ว

199
00:14:40,487 --> 00:14:44,487
นะคะ อย่างนี้เรียกว่า Stack มันเต็มแล้ว

200
00:14:52,496 --> 00:14:56,496
คราวนี้ เรามี 2 คำสั่ง

201
00:14:56,499 --> 00:15:00,499
ที่พูดถึงนะ Push กับ Pop

202
00:15:00,502 --> 00:15:04,502
นะคะ Push ก็คือใส่ข้อมูลลงไปใน Stack

203
00:15:04,504 --> 00:15:08,504
เช่น ครูมี Stack

204
00:15:08,505 --> 00:15:12,505
อย่างนี้ใช่ไหม มันมีที่ว่างให้ครูใส่ข้อมูลได้ไหมคะ มี นะ มันมี

205
00:15:12,506 --> 00:15:16,506
ที่ว่างให้ครูใส่ข้อมูลได้นะคะ ครู

206
00:15:16,509 --> 00:15:20,509
ก็เลยสั่งคำสั่ง Push 3 ก็คือเอาข้อมูล 3 นี่

207
00:15:20,512 --> 00:15:24,512
ไปหย่อนลงไปใน Stack มันจะเอามาใส่ช่องนี้

208
00:15:24,515 --> 00:15:28,515
ช่องที่ 1 หรือช่องที่ 2 คะ ช่องที่ 1

209
00:15:28,519 --> 00:15:32,519
ถูกไหม ก็ไล่ลำดับมาเรื่อย ๆ

210
00:15:32,519 --> 00:15:36,519
มันอยู่ช่องนี้แล้ว ข้อมูลล่าสุดอยู่ช่องนี้

211
00:15:36,523 --> 00:15:40,523
เพราะฉะนั้น เวลาเราหย่อนลงไป มันก็ไหลลงไปจนถึงตัวสุดท้าย

212
00:15:40,526 --> 00:15:44,526
ที่มันสามารถจะใส่ได้ ก็คือในช่องตรงนี้ ก็จะเอา 3

213
00:15:44,529 --> 00:15:48,529
มาใส่

214
00:15:48,529 --> 00:15:52,529
แล้วเราใส่ด้วยคำสั่งอะไร

215
00:15:52,530 --> 00:15:56,530
เราใช้ List นะคะ

216
00:15:56,530 --> 00:16:00,530
ในการจัดเก็บข้อมูล เราใช้ List  ในการจัดเก็บข้อมูล

217
00:16:00,531 --> 00:16:04,531
เพราะฉะนั้น คำสั่งของการ

218
00:16:04,532 --> 00:16:08,532
เพิ่มข้อมูลลงไปใน Stack ก็คือใช้คำสั่ง

219
00:16:08,535 --> 00:16:12,535
Append ได้เลย เพราะ Append

220
00:16:12,536 --> 00:16:16,536
เป็นคำสั่งของการเพิ่มข้อมูลลงไป

221
00:16:16,538 --> 00:16:20,538
ใน List  นะคะ ใส่ชื่อ

222
00:16:20,543 --> 00:16:24,543
. แล้วตามด้วยคำสั่ง Append

223
00:16:24,546 --> 00:16:28,546
วงเล็บเปิด ใส่ค่าข้อมูลตัวใหม่ แล้วก็วงเล็บปิด

224
00:16:28,549 --> 00:16:32,549
ถัดมา

225
00:16:32,550 --> 00:16:36,550
Pop

226
00:16:36,552 --> 00:16:40,552
คือ เอาออกนะคะ คือ Pop คือ เอาออก

227
00:16:40,555 --> 00:16:44,555
ก่อนที่เราจะเอาข้อมูลออก

228
00:16:44,559 --> 00:16:48,559
นี่ เราต้องเช็กก่อนว่า Stack เรา

229
00:16:48,562 --> 00:16:52,562
นี่ มีข้อมูลอยู่ไหม ถ้า Stack

230
00:16:52,562 --> 00:16:56,562
มันไม่มีข้อมูลอยู่เลย เราจะเอาอะไรออกมาได้ไหม ไม่ได้

231
00:16:56,566 --> 00:17:00,566
นะคะ เพราะมันไม่มีข้อมูลอะไรให้เราดึงออกมา

232
00:17:00,569 --> 00:17:04,569
เพราะฉะนั้น อันดับแรกนี่ เราต้องเช็กก่อน

233
00:17:04,572 --> 00:17:08,572
มันมีข้อมูลอยู่ไหมนะคะ มันมีข้อมูลอยู่ไหม

234
00:17:08,573 --> 00:17:12,573
ถ้ามันไม่มีข้อมูลอยู่เลย เราจะบอกว่า

235
00:17:12,574 --> 00:17:16,574
มันคือ Stack ว่าง เราจะไม่สามารถทำคำสั่ง Pop

236
00:17:16,578 --> 00:17:20,578
ได้นะคะ แต่ถ้า

237
00:17:20,578 --> 00:17:24,578
Stack ไม่ว่าง เช่น

238
00:17:24,583 --> 00:17:28,583
ในบรรทัดแถวที่ 2 Stack ไม่ว่างนะ มันมีข้อมูลอยู่ตั้ง 3 ตัว

239
00:17:28,586 --> 00:17:32,586
เราใช้คำสั่ง Pop

240
00:17:32,586 --> 00:17:36,586
ข้อมูลอะไรจะถูกดึงออกมา มีอยู่ 3 ค่านี่

241
00:17:36,590 --> 00:17:40,590
ข้อมูลที่จะเอาออกมาจาก Stack

242
00:17:40,593 --> 00:17:44,593
ก็คือข้อมูลค่าอะไรเอ่ย

243
00:17:44,597 --> 00:17:48,597
อะไรคะ 1 หรือ 2

244
00:17:48,601 --> 00:17:52,601
หรือ 3 3 ใช่ไหม

245
00:17:52,601 --> 00:17:56,601
เอาตัวที่อยู่บนสุด

246
00:17:56,604 --> 00:18:00,604
ตัวล่าสุดน่ะ ตัวล่าสุด ถูกไหมคะ ถ้าอยู่ในแนวนอน ตัวล่าสุดจะอยู่

247
00:18:00,607 --> 00:18:04,607
ด้านขวา

248
00:18:04,611 --> 00:18:08,611
ถ้าเป็นแนวตั้ง ตัวล่าสุดจะอยู่ข้างบนใช่ไหมคะ

249
00:18:08,614 --> 00:18:12,614
ก็คือเลข 3 จะถูก

250
00:18:12,614 --> 00:18:16,614
ดึงออกมานะคะ หลังจากที่เราใช้คำสั่ง Pop

251
00:18:20,619 --> 00:18:24,619
โอเค

252
00:18:24,623 --> 00:18:28,623
ถัดมา ตัวนี้จะเป็นคำสั่ง

253
00:18:28,626 --> 00:18:32,626
ที่เราใช้เขียน เช่น

254
00:18:32,626 --> 00:18:36,626
เราจะเช็กว่า Stack นั้นเป็น Stack ว่าง

255
00:18:36,630 --> 00:18:40,630
หรือเปล่า เราก็ดูขนาดของ Stack ใช่ไหมคะ

256
00:18:40,630 --> 00:18:44,630
หาขนาดของ Stack ว่ามันมีขนาด

257
00:18:44,633 --> 00:18:48,633
เท่าไร ถ้าขนาดมันมีค่าเป็น 0

258
00:18:48,637 --> 00:18:52,637
แสดงว่ามันเป็น Stack ว่าง คือ ไม่มีข้อมูลอยู่เลย

259
00:18:52,638 --> 00:18:56,638
ก็ไม่ต้องทำอะไรใช่ไหมคะ แต่ถ้า

260
00:18:56,641 --> 00:19:00,641
มันไม่ใช่ Stack ว่าง เราก็

261
00:19:00,642 --> 00:19:04,642
จะดึงค่าที่อยู่บนสุดออกมา

262
00:19:04,645 --> 00:19:08,645
คราวนี้

263
00:19:08,646 --> 00:19:12,646
อันนี้จะเป็นโค้ด เป็นโปรแกรมที่เราจะเขียนทั้งหมด

264
00:19:12,647 --> 00:19:16,647
เดี๋ยวครูบอกอีกทีข้างหลัง

265
00:19:16,655 --> 00:19:20,655
นะคะ สมมติว่า

266
00:19:32,659 --> 00:19:36,659
ครูอยาก..

267
00:20:32,690 --> 00:20:36,690
คราวนี้ดูนะคะ

268
00:20:36,693 --> 00:20:40,693
ครูมี Stack มาให้ Stack ครูมีกี่ช่องคะ

269
00:20:40,697 --> 00:20:44,697
มี 4 ช่อง ในแนวตั้ง ถูก

270
00:20:44,701 --> 00:20:48,701
ไหม เป็น Stack ในแนวตั้ง มี 4 ช่องนะคะ

271
00:20:48,702 --> 00:20:52,702
ตัวแรก ตัวแรกน่ะ จะอยู่

272
00:20:52,703 --> 00:20:56,703
ด้านฐาน จะอยู่ด้านล่างสุดนะ เวลาเราหย่อนข้อมูลลงไป ตัวแรก

273
00:20:56,706 --> 00:21:00,706
จะลงมาอยู่ช่องล่างสุด แล้วค่อยขยับขึ้นไปช่องถัดไป

274
00:21:00,709 --> 00:21:04,709
ถัดไปนะคะ จะซ้อนขึ้นไปข้างบนนะ ถ้าเป็น Stack ในแนวตั้ง

275
00:21:04,714 --> 00:21:08,714
คำสั่ง

276
00:21:08,716 --> 00:21:12,716
อย่างที่บอก เรามีแค่ 2 คำสั่งนะ มีแค่ Push กับ Pop

277
00:21:12,717 --> 00:21:16,717
ใช่ไหมคะ Push

278
00:21:16,720 --> 00:21:20,720
ใส่ข้อมูล

279
00:21:20,723 --> 00:21:24,723
กับ Pop

280
00:21:24,727 --> 00:21:28,727
เอาข้อมูลออก คือ ใส่กับเอาออก

281
00:21:28,728 --> 00:21:32,728
นะคะ คราวนี้ดู

282
00:21:32,728 --> 00:21:36,728
Push 5 เห็นไหมคะ ครูใส่หมายเลขช่องก่อนนะ

283
00:21:36,731 --> 00:21:40,731
อันนี้เป็นหมายเลข 1, 0, 1, 2, 3

284
00:21:40,734 --> 00:21:44,734
นะ เราจะได้เข้าใจตรงกัน โอเค

285
00:21:44,735 --> 00:21:48,735
นะคะ มีหลายเลขช่องแล้วนะ เริ่มที่ 0 1 2 3

286
00:21:48,739 --> 00:21:52,739
ครูสั่ง Push 5 5 จะ

287
00:21:52,740 --> 00:21:56,740
ไปอยู่ที่ช่องไหนคะ ช่องไหนเอ่ย

288
00:21:56,742 --> 00:22:00,742
ช่องหมายเลขอะไร ครูหย่อน 5

289
00:22:00,746 --> 00:22:04,746
ลงไป มันก็จะไหลลงมา มาอยู่ที่ช่องไหนคะ

290
00:22:04,746 --> 00:22:08,746
ช่อง 0 เห็นไหม พอครูหย่อน 5 ลงมา

291
00:22:08,749 --> 00:22:12,749
มันก็ไหลลงมาเรื่อย ๆ ถูกไหมคะ จนมาอยู่ที่

292
00:22:12,750 --> 00:22:16,750
ช่อง 0 เสร็จแล้วครูสั่งคำสั่ง Push

293
00:22:16,754 --> 00:22:20,754
10 เดิม มันมี 5 อยู่แล้วนะ

294
00:22:20,757 --> 00:22:24,757
แล้วครูสั่ง Push 10 เพราะฉะนั้น 10 จะมาอยู่ที่ไหนคะ

295
00:22:24,762 --> 00:22:28,762
10 จะมาอยู่ที่

296
00:22:28,762 --> 00:22:32,762
1 ถูกไหมคะ ก็หย่อน 10 ลงมานะ

297
00:22:32,763 --> 00:22:36,763
ถัดมา เดิม

298
00:22:36,767 --> 00:22:40,767
เดิม มี 5 กับ 10 แล้ว ครูเขียนเรียบร้อยก่อน

299
00:22:40,771 --> 00:22:44,771
นะคะ ใส่ที่ช่อง 0 กับช่อง 1 ครู

300
00:22:44,771 --> 00:22:48,771
สั่ง Push 15 ไปอยู่ที่ช่องไหนคะ 2

301
00:22:48,774 --> 00:22:52,774
เห็นไหม พอ Push ข้อมูลลงไป

302
00:22:52,775 --> 00:22:56,775
นะคะ คราวนี้ จากรูปนี้ ครูสั่ง Pop

303
00:22:56,779 --> 00:23:00,779
เ อาอะไรออกมา

304
00:23:00,782 --> 00:23:04,782
จากรูปนี้ พอครูสั่ง Pop ปุ๊บ เอาอะไรออกมาคะ

305
00:23:04,785 --> 00:23:08,785
เอาอะไรออกมาเอ่ย

306
00:23:08,788 --> 00:23:12,788
15 ใช่ไหม เอาตัวบนสุด

307
00:23:12,788 --> 00:23:16,788
เลือก

308
00:23:16,791 --> 00:23:20,791
เราเลือก

309
00:23:20,795 --> 00:23:24,795
ตัวบนสุดออกมาใช่ไหมคะ

310
00:23:24,797 --> 00:23:28,797
เพราะฉะนั้น 15 จะถูกดึง

311
00:23:28,800 --> 00:23:32,800
ออกมาข้างนอก เห็นไหมคะ

312
00:23:32,801 --> 00:23:36,801
เพราะฉะนั้น ใน Stack จะเหลือแค่ 10 กับ 5

313
00:23:36,801 --> 00:23:40,801
ครูสั่ง Pop อีกทีหนึ่ง

314
00:23:40,804 --> 00:23:44,804
เอาอะไรออกมาคะ เดิม

315
00:23:44,807 --> 00:23:48,807
มี 5 กับ 10

316
00:23:48,811 --> 00:23:52,811
คราวนี้เอาอะไรออกมา ครูสั่ง Pop ปุ๊บ อะไรออกมาคะ

317
00:23:52,812 --> 00:23:56,812
10 ออกมา เห็นไหม 10 ไม่เหลือแล้ว

318
00:23:56,815 --> 00:24:00,815
เพราะฉะนั้น ตอนนี้ ใน Stack เราเหลือกี่ค่าคะ

319
00:24:00,818 --> 00:24:04,818
ค่าเดียว คือ เลข 5

320
00:24:04,822 --> 00:24:08,822
จดตัวนี้ไว้ในกระดาษให้ครูหน่อย

321
00:24:12,826 --> 00:24:16,826
เดี๋ยวครูจะให้ทำแบบฝึกหัด

322
00:24:16,830 --> 00:24:20,830
นะคะ

323
00:25:20,884 --> 00:25:24,884
มีกระดาษไหมคะ มีใครไม่มีกระดาษไหม

324
00:25:24,887 --> 00:25:28,887
ครูมีกระดาษมาแจก มีไหมคะ

325
00:25:28,890 --> 00:25:32,890
มันจะมีเส้น

326
00:30:37,073 --> 00:30:41,073
คราวนี้นะคะ ครูมีโจทย์มาให้ แล้วก็มี

327
00:30:41,077 --> 00:30:45,077
คำสั่งมาให้

328
00:30:45,080 --> 00:30:49,080
ทำเหมือนเดิมเลยใช่ไหมคะ แต่ครูมีตัว

329
00:30:49,081 --> 00:30:53,081
เริ่มต้นให้ ครูมีให้อยู่แล้ว อยู่ใน Stack

330
00:30:53,082 --> 00:30:57,082
คือ 5 ใช่ไหมคะ อันแรก เราหย่อน

331
00:30:57,085 --> 00:31:01,085
เลข 2 ลงไป อันที่ 2 เขียนของเดิมก่อน

332
00:31:01,088 --> 00:31:05,088
ใช่ไหมคะ แล้วค่อยหย่อนเลข 7 ลงไป

333
00:31:05,091 --> 00:31:09,091
ถัดมา หย่อนเลข 1 Pop

334
00:31:09,094 --> 00:31:13,094
คือ เอาออกนะ เอาออก แล้วบอกครูด้วยว่า

335
00:31:13,095 --> 00:31:17,095
ข้อมูล

336
00:31:17,098 --> 00:31:21,098
ที่เอาออกมา

337
00:31:21,099 --> 00:31:25,099
คืออะไร เสร็จแล้ว

338
00:31:25,102 --> 00:31:29,102
ก็มีคำสั่งตัวสุดท้าย คือ Push เลข 7 ลงไป

339
00:31:33,106 --> 00:31:37,106
ลองทำดูนะคะ

340
00:31:41,112 --> 00:31:45,112
เพราะฉะนั้น แต่ละข้อ

341
00:31:45,114 --> 00:31:49,114
มันจะต่อเนื่องกันไปนะคะ

342
00:31:49,117 --> 00:31:53,117
ทำตัวแรก ข้อที่ 1 เสร็จ เอาข้อมูลนี่

343
00:31:53,117 --> 00:31:57,117
มาตั้งต้นไว้ก่อน แล้วเราค่อย Push

344
00:31:57,123 --> 00:32:01,123
เลข 7 ลงไป เดี๋ยวเราทำด้วยกัน 1 ข้อนะ

345
00:32:01,126 --> 00:32:05,126
อันนี้ คือ Push เลข 2 คือ หย่อนเลข 2

346
00:32:05,129 --> 00:32:09,129
ลงไป

347
00:32:13,131 --> 00:32:17,131
ข้อที่ 2 ครูจะใส่เลข 7 เพราะฉะนั้น ครู

348
00:32:17,135 --> 00:32:21,135
ต้องใส่ข้อมูลเดิมก่อน

349
00:32:21,139 --> 00:32:25,139
นะคะ และก็หย่อนเลข 7 ลงไป ทำต่อให้ครูหน่อย

350
00:32:25,140 --> 00:32:29,140
อีก 3 อัน

351
00:40:33,410 --> 00:40:37,410
คราวนี้เดี๋ยวเรามาดูเฉลยพร้อมก

352
00:40:45,416 --> 00:40:49,416
ันนะคะ ข้อ 3 นะคะ ครูสั่ง Push 1 ก็คือใส่เลข 1 ลง

353
00:40:49,416 --> 00:40:53,416
ไปใน Stack เดิม

354
00:40:53,417 --> 00:40:57,417
เอาของเดิมยกมาก่อนนะ อย่าเพิ่งใส่นะคะ ของเดิม

355
00:40:57,421 --> 00:41:01,421
มี 3 ค่านะ เขียนก่อนนะคะ

356
00:41:01,424 --> 00:41:05,424
เขียนค่าเดิมก่อน ใส่ค่าเดิมมาก่อน

357
00:41:05,428 --> 00:41:09,428
นะคะ เสร็จแล้ว ครูสั่ง Push 1

358
00:41:09,431 --> 00:41:13,431
1 จะอยู่ด้านบนเลข 7

359
00:41:13,431 --> 00:41:17,431
ใช่ไหมคะ

360
00:41:17,435 --> 00:41:21,435
จากนั้นครูสั่ง Pop Pop คือ เอาออก

361
00:41:21,439 --> 00:41:25,439
บนสุดคืออะไร คือ 1 ใช่ไหมคะ เพราะฉะนั้น

362
00:41:25,442 --> 00:41:29,442
เอาอะไรออก เอา 1 ออก เพราะฉะนั้น ที่เหลือ

363
00:41:29,446 --> 00:41:33,446
ก็คือ 5, 2, 7 ถูกไหมคะ 1

364
00:41:33,446 --> 00:41:37,446
จะถูกเอาออกมาใช่ไหม เพราะฉะนั้น ข้อมูล

365
00:41:37,450 --> 00:41:41,450
ที่นำออกจาก Stack ก็คือ 1

366
00:41:41,453 --> 00:41:45,453
นะคะ

367
00:41:45,455 --> 00:41:49,455
ครูสั่ง Push อีกครั้งหนึ่ง ทำอย่างไร

368
00:41:49,458 --> 00:41:53,458
ก็เอาของเดิมที่มีอยู่ใน Stack เขียนก่อน

369
00:41:53,459 --> 00:41:57,459
เพราะฉะนั้น กรณีที่ Push ข้อม

370
00:41:57,462 --> 00:42:01,462
ูลลงไปใน Stack ยกของเดิมมาก่อน

371
00:42:01,466 --> 00:42:05,466
เสร็จแล้ว

372
00:42:05,469 --> 00:42:09,469
ใส่ตัวเลขที่ครูสั่งลงไป ก็คือ 7 7

373
00:42:09,473 --> 00:42:13,473
ก็จะอยู่ด้านบนนะคะ อันนี้คือ

374
00:42:13,473 --> 00:42:17,473
Stack ที่ได้ หลังจากที่เราใช้

375
00:42:17,476 --> 00:42:21,476
คำสั่งทั้งหมด 5 คำสั่ง

376
00:42:25,483 --> 00:42:29,483
โอเค

377
00:42:33,487 --> 00:42:37,487
ถัดมาครูเปลี่ยนได้ไหม จากแนวตั้ง

378
00:42:37,490 --> 00:42:41,490
เป็นแนวนอนนะคะ ถ้าครูลองเปลี่ยน Stack เป็นแนวนอน

379
00:42:41,493 --> 00:42:45,493
บ้าง

380
00:43:17,519 --> 00:43:21,519
คราวนี้ครูลองเปลี่ยน Stack เป็นอีกรูปแบบหนึ่ง

381
00:43:21,520 --> 00:43:25,520
เป็นแนวนอนบ้างนะคะ

382
00:43:25,524 --> 00:43:29,524
และครูมีตัวเลข

383
00:43:29,526 --> 00:43:33,526
ที่อยู่ใน Stack ไว้ให้ คือ 3

384
00:43:33,526 --> 00:43:37,526
แล้วก็ 1 ถูกไหม ตัวแรกจะอยู่ซ้ายสุด ใช่ไหมคะ

385
00:43:37,530 --> 00:43:41,530
ถัดมาก็จะเป็นตัวที่ 2

386
00:43:41,533 --> 00:43:45,533
แล้วครูใช้คำสั่ง Push 5 ข้อที่ 2

387
00:43:45,536 --> 00:43:49,536
ครู Push 6 เสร็จแล้ว

388
00:43:49,539 --> 00:43:53,539
ครู Pop นะคะ ลองทำสิ

389
00:49:53,763 --> 00:49:57,763
คราวนี้นะคะ

390
00:49:57,766 --> 00:50:01,766
มาดูเฉลยด้วยกัน

391
00:50:01,770 --> 00:50:05,770
ครูสั่ง Push 5 แสดงว่า

392
00:50:05,773 --> 00:50:09,773
ครูกำลังจะใส่ข้อมูลลงไปใน Stack

393
00:50:09,776 --> 00:50:13,776
คือ เลข 5 นะคะ ครูก็เอาเลข 5 มาหย่อนลงเลยนะ

394
00:50:13,776 --> 00:50:17,776
เอาเลข 5 มาหย่อนเลยนะคะ

395
00:50:17,780 --> 00:50:21,780
ถัดมา ครูใช้คำสั่ง Push

396
00:50:21,783 --> 00:50:25,783
ครูใช้คำสั่ง Push ทำอย่างไร เอา

397
00:50:25,784 --> 00:50:29,784
ของเดิมยกลงมาก่อน นะ ยกของเดิม

398
00:50:29,788 --> 00:50:33,788
มาใส่ก่อนนะคะ ก็จะมี 3,

399
00:50:33,788 --> 00:50:37,788
1 แล้วก็ 5

400
00:50:37,792 --> 00:50:41,792
จากนั้น เรา Push ค่าใหม่ ใส่ค่าใหม่

401
00:50:41,796 --> 00:50:45,796
ลงไป ก็คือ 6

402
00:50:45,799 --> 00:50:49,799
โอเคนะ ใส่ค่า 6 ก็คือค่าใหม่ลงไปใน Stack

403
00:50:49,803 --> 00:50:53,803
เสร็จแล้ว ครูใช้คำสั่ง Pop

404
00:50:53,804 --> 00:50:57,804
ก็คือเอาออก ก็คือเอาตัวล่าสุด

405
00:50:57,808 --> 00:51:01,808
ก็คือที่อยู่ด้านขวา เอาออก

406
00:51:01,812 --> 00:51:05,812
นะคะ เพราะฉะนั้น ค่าที่ถูกเอาออก ก็คือเลข 6

407
00:51:05,815 --> 00:51:09,815
เห็นไหมคะ เอาเลข 6 ออกมา

408
00:51:09,818 --> 00:51:13,818
แล้วเราก็ยกตัวที่เหลือ

409
00:51:13,818 --> 00:51:17,818
ลงมาใส่ ก็จะเหลือเป็น

410
00:51:17,821 --> 00:51:21,821
3, 1 แล้วก็ 5 นะคะ

411
00:52:33,875 --> 00:52:37,875
คราวนี้นะคะ มาดูต่อ

412
00:52:37,880 --> 00:52:41,880
กระดาษที่ครูแจก เอาวางไว้ก่อนนะคะ อย่าเพิ่งใช้ เรายังไม่ใช้ตอนนี้

413
00:52:49,886 --> 00:52:53,886
เราใช้ Stack ทำอะไร เมื่อกี้

414
00:52:53,887 --> 00:52:57,887
เราพูดถึง Stack ไปแล้วนะ เข้าก่อน ออกทีหลัง

415
00:52:57,890 --> 00:53:01,890
นะคะ ข้อมูลไหนเข้าก่อน

416
00:53:01,890 --> 00:53:05,890
จะถูกเอาออกทีหลัง

417
00:53:05,894 --> 00:53:09,894
แล้วเราใช้ Stack ทำอะไรบ้าง

418
00:53:09,895 --> 00:53:13,895
เราใช้ Stack มาทำอะไรบ้าง

419
00:53:13,895 --> 00:53:17,895
ทุกคนบวกเลขเป็นใช่ไหม ทุกคนบวกลบคูณหาร

420
00:53:17,898 --> 00:53:21,898
ot8t สมการทางคณิตศาสตร์ได้ Stack

421
00:53:21,901 --> 00:53:25,901
จะถูกเอามาใช้ในการ

422
00:53:25,906 --> 00:53:29,906
หาผลลัพธ์ของสมการคณิตศาสตร์

423
00:53:29,908 --> 00:53:33,908
บวกเลข บวกลบเลขนะคะ

424
00:53:33,911 --> 00:53:37,911
คราวนี้ ก่อนที่จะไปดูรูปแบบของการ

425
00:53:37,913 --> 00:53:41,913
ใช้ Stack แล้ว Stack มันเกี่ย

426
00:53:41,913 --> 00:53:45,913
วข้องอย่างไร กับการบวก ลบ คูณ หาร นะคะ เรามาดูรูปแบบก่อนว่า

427
00:53:45,914 --> 00:53:49,914
เราใช้ Stack เพื่อเป็นนิพ

428
00:53:49,914 --> 00:53:53,914
จน์ ก็คือลักษณะของสมการ

429
00:53:53,914 --> 00:53:57,914
มีอยู่ 3 รูปแบบ นะคะ รูปแบบแรก

430
00:53:57,917 --> 00:54:01,917
ก็คือ

431
00:54:01,918 --> 00:54:05,918
Infix บวก ลบ คูณ หาร จะอยู่ระหว่างตัวเลข

432
00:54:05,921 --> 00:54:09,921
นะคะ อันนี้คือ Infix นิพจน์ตัวที่ 2

433
00:54:09,921 --> 00:54:13,921
ก็คือ Prefix

434
00:54:13,922 --> 00:54:17,922
เครื่องหมายบวก ลบ คูณ หาร จะอยู่ด้านหน้า

435
00:54:17,925 --> 00:54:21,925
และตัวสุดท้าย คือ

436
00:54:21,928 --> 00:54:25,928
Postfix เครื่องหมายจะไปอยู่ด้านหลังของตัวเลข

437
00:54:25,932 --> 00:54:29,932
AC อันนี้คือตัวเลขนะคะ

438
00:54:29,935 --> 00:54:33,935
เราจะแทนด้วยตัวเลขใด ๆ

439
00:54:33,936 --> 00:54:37,936
คราวนี้ดูนะคะ ในการคำนวณ

440
00:54:37,939 --> 00:54:41,939
ทางคณิตศาสตร์นะ

441
00:54:41,942 --> 00:54:45,942
เวลาเราเจอนะคะ การบวก ลบ

442
00:54:45,946 --> 00:54:49,946
ที่มันมีมากกว่า 2 ตัวเลข

443
00:54:49,949 --> 00:54:53,949
เช่น แบบนี้

444
00:54:53,950 --> 00:54:57,950
5 + 2 x 2 มันมีตัวเลขมากกว่า 2 ตัว

445
00:54:57,954 --> 00:55:01,954
นะคะ แล้วเรา

446
00:55:01,957 --> 00:55:05,957
จะบวกลบเลขอย่างไร

447
00:55:05,960 --> 00:55:09,960
เรามีลำดับความสัมคัญของ

448
00:55:09,963 --> 00:55:13,963
เครื่องหมาย เจอวงเล็บ

449
00:55:13,964 --> 00:55:17,964
ก่อน ทำในวงเล็บ

450
00:55:17,967 --> 00:55:21,967
ใช่ไหมคะ เราเจอวงเล็บ เรา

451
00:55:21,970 --> 00:55:25,970
บวกลบเลขนี่ ในเครื่องหมายวงเล็บก่อน

452
00:55:25,973 --> 00:55:29,973
จากนั้น ลำดับความสำคัญตัวที่ 2 ที่จะต้อง

453
00:55:29,976 --> 00:55:33,976
ทำก่อน ก็คือเครื่องหมาย

454
00:55:33,976 --> 00:55:37,976
ยกกำลัง เช่น 2 ยกกำลัง 2 ใช่ไหมคะ

455
00:55:37,981 --> 00:55:41,981
3 ยกกำลัง 2 อย่างนี้เป็นต้น

456
00:55:41,985 --> 00:55:45,985
เจอเลขยกกำลังเสร็จแล้ว

457
00:55:45,989 --> 00:55:49,989
เราจะคำนวณเครื่องหมายไหนต่อไป

458
00:55:49,992 --> 00:55:53,992
คูณกับหาร คูณกับหารมีลำดับความสำคัญ

459
00:55:53,993 --> 00:55:57,993
เท่ากันนะคะ มีลำดับความสำคัญ

460
00:55:57,996 --> 00:56:01,996
เท่ากัน ตามด้วยบวกกับลบ

461
00:56:02,000 --> 00:56:06,000
นะ บวกกับลบก็มีความสำคัญ

462
00:56:06,002 --> 00:56:10,002
เท่ากัน แต่จะทำ

463
00:56:10,005 --> 00:56:14,005
หลังการทำเครื่องหมายคูณกับหาร

464
00:56:18,009 --> 00:56:22,009
นะคะ คราวนี้ มาดูโจทย์ครู 2 ตัวนี้

465
00:56:22,010 --> 00:56:26,010
เป็นตัวเลขตัวเดียวกันเลย 5 + 2

466
00:56:26,013 --> 00:56:30,013
x 2 ตัวแรก

467
00:56:30,016 --> 00:56:34,016
ครูมีวงเล็บเปิดกับวงเล็บปิด โจทย์ตัวที่ 2 ครูไม่ได้

468
00:56:34,017 --> 00:56:38,017
ใส่วงเล็บนะคะ ครูไม่มีวงเล็บนะ

469
00:56:38,017 --> 00:56:42,017
คราวนี้มาดูข้อแรกก่อน

470
00:56:42,020 --> 00:56:46,020
อย่างที่บอกว่าถ้าเจอวงเล็บ

471
00:56:46,020 --> 00:56:50,020
วงเล็บเปิด วงเล็บปิด ทำ

472
00:56:50,023 --> 00:56:54,023
ข้างในวงเล็บก่อน

473
00:56:54,024 --> 00:56:58,024
เพราะฉะนั้น เราเอาอะไรบวกกันก่อน 5 + 2

474
00:56:58,027 --> 00:57:02,027
เป็นเท่าไรคะ เป็น 7

475
00:57:02,029 --> 00:57:06,029
7 แล้วคูณด้วย 2 เท่ากับเท่าไร

476
00:57:06,032 --> 00:57:10,032
เท่ากับเท่าไรคะ

477
00:57:10,033 --> 00:57:14,033
เท่ากับ 14

478
00:57:18,036 --> 00:57:22,036
ตัวเลขเท่ากับ 14 ตัวแรกนะคะ เท่ากับ 14

479
00:57:22,040 --> 00:57:26,040
แล้วมาดูข้อ 2 ครูตัด

480
00:57:26,043 --> 00:57:30,043
วงเล็บทิ้งไป 5 + 2 x 2

481
00:57:30,046 --> 00:57:34,046
เราทำตรงไหนก่อน

482
00:57:34,047 --> 00:57:38,047
ย้อนกลับขึ้นมาดูข้างบน ระหว่างบวกกับคูณ

483
00:57:38,050 --> 00:57:42,050
อะไรสำคัญมากกว่ากัน

484
00:57:42,053 --> 00:57:46,053
อะไรมีความสำคัญมากกว่ากันคะ

485
00:57:46,058 --> 00:57:50,058
บวกกับคูณ

486
00:57:54,058 --> 00:57:58,058
ใช่ คูณ จากข้อมูลข้างบนเห็นไหมคะ ว่า 1 นี่

487
00:57:58,062 --> 00:58:02,062
มีความสำคัญมากสุดนะ 2. ความสำคัญรองลงมา

488
00:58:02,065 --> 00:58:06,065
ตัวนี้ เบอร์ 3 ความสำคัญ

489
00:58:06,068 --> 00:58:10,068
รองลงมา เบอร์ 4 ความสำคั

490
00:58:10,072 --> 00:58:14,072
ญน้อยสุดเลย เพราะฉะนั้น คูณกับบวก

491
00:58:14,073 --> 00:58:18,073
อะไรมีความสำคัญมากกว่ากัน

492
00:58:18,076 --> 00:58:22,076
คูณใช่ไหมคะ อันนี้คือมากสุด

493
00:58:22,080 --> 00:58:26,080

494
00:58:26,084 --> 00:58:30,084
เพราะฉะนั้น เรา

495
00:58:30,088 --> 00:58:34,088
ทำอะไรก่อน 5 + 2 หรือเอา 2

496
00:58:34,090 --> 00:58:38,090
x 2 2 x 2

497
00:58:38,093 --> 00:58:42,093
เป็น 4 4 + 5

498
00:58:42,094 --> 00:58:46,094
เป็นเท่าไรคะ

499
00:58:46,097 --> 00:58:50,097
4 + 5 เป็น 9

500
00:58:50,100 --> 00:58:54,100
โอเค

501
00:58:54,101 --> 00:58:58,101
ถ้าครูเขียนใหม่

502
00:59:06,109 --> 00:59:10,109
เลข 2 หรือ เดี๋ยวนะ

503
00:59:26,122 --> 00:59:30,122
โจทย์ข้อนี้

504
00:59:30,126 --> 00:59:34,126
5 x 2

505
00:59:34,127 --> 00:59:38,127
+ 2 =  12 คนอื่น

506
00:59:38,130 --> 00:59:42,130
ได้ไหมคะ เห็นไหม ตัวเลขเดียวกันเลย

507
00:59:42,134 --> 00:59:46,134
สลับ แล้วก็คเครื่องหมายมีเหมือนกันเล

508
00:59:46,134 --> 00:59:50,134
ย แค่สลับตำแหน่ง ค่าก็เปลี่ยนแล้ว

509
00:59:50,137 --> 00:59:54,137
ทันไหมคะ คูณกับบวกแสดงว่า

510
00:59:54,138 --> 00:59:58,138
ทำคูณก่อน 5 x 2

511
00:59:58,140 --> 01:00:02,140
เป็น 10 10 + 2 เป็น 12

512
01:00:06,145 --> 01:00:10,145
โอเค

513
01:00:10,148 --> 01:00:14,148
เอาตัวนี้บวกกันก่อน คูณกันก่อนนะคะ

514
01:00:14,149 --> 01:00:18,149
5 x 2 เป็น 10 แล้ว 10 ค่อยมาบวกกับ

515
01:00:18,152 --> 01:00:22,152
2 โอเค

516
01:00:22,157 --> 01:00:26,157
จะเห็นว่า

517
01:00:26,162 --> 01:00:30,162
อันนี้คือเราคิดใช่ไหม

518
01:00:30,162 --> 01:00:34,162
อันนี้คือเราคิดนะคะ แล้วเราจะสั่งให้คอมพิวเตอร์นี่

519
01:00:34,163 --> 01:00:38,163
เข้าใจแบบที่เราคิดเมื่อกี้ได้อย่างไร

520
01:00:38,166 --> 01:00:42,166
รู้ว่าถ้าเจอคูณนี่ต้องทำคูณก่อนเลย

521
01:00:42,169 --> 01:00:46,169
เจอวงเล็บเปิด ต้องทำวงเล็บเปิด

522
01:00:46,171 --> 01:00:50,171
วงเล็บปิดก่อน ตอนนี้เราจะสั่งให้คอมพิวเตอร์นี่ สามารถคำนวณ

523
01:00:50,174 --> 01:00:54,174
ให้ได้แบบที่เราคำนวณเมื่อกี้

524
01:00:54,175 --> 01:00:58,175
เราใช้

525
01:00:58,178 --> 01:01:02,178
Stack เข้ามาช่วยในการคำนวณนะคะ

526
01:01:02,179 --> 01:01:06,179
เราใช้ Stack เข้ามาช่วยในการคำนวณ

527
01:01:06,182 --> 01:01:10,182
วิธีการ ทำแบบไหน

528
01:01:10,186 --> 01:01:14,186
มาดูวิธีการนะคะ เรามีตัวเลขอยู่ชุดหนึ่ง

529
01:01:14,186 --> 01:01:18,186
เราต้องการหาค่าออกมา เช่น

530
01:01:18,190 --> 01:01:22,190
ครูมีตัวเลขชุดนี้ล่ะ

531
01:01:22,192 --> 01:01:26,192
นี่ ครูสั่งให้คอมพิวเตอร์คำนวณ นี่ มันต้องได้ผลลัพธ์ 9

532
01:01:26,194 --> 01:01:30,194
เหมือนที่เราคิดเมื่อกี้ คอมพิวเตอร์จะคิดแบบไหนนะคะ

533
01:01:30,197 --> 01:01:34,197
1. เราต้องสร้างตารางแบบนี้ก่อน

534
01:01:34,198 --> 01:01:38,198
มี 3 ช่อง ช่องแรก คือ ใส่ Input

535
01:01:38,198 --> 01:01:42,198
ก็คือข้อมูลนำเข้า Stack

536
01:01:42,198 --> 01:01:46,198
แล้วก็ผลลัพธ์นะคะ

537
01:01:46,202 --> 01:01:50,202
เรามีวิธีการทำนี่ 2 ช่วงด้วยกัน ช่วงที่ 1

538
01:01:50,203 --> 01:01:54,203
ต้องแปลงนิพจน์

539
01:01:54,203 --> 01:01:58,203
นะคะ ให้เป็นแบบ Postfix เ

540
01:01:58,206 --> 01:02:02,206
อาเครื่องหมายไปไว้ข้างหลังให้หมดก่อน เอาเครื่องหมาย

541
01:02:02,209 --> 01:02:06,209
ไปไว้ข้างหลังให้หมดก่อนนะคะ แล้วค่อยคำนวณออกมาเป็น

542
01:02:06,211 --> 01:02:10,211
ตัวเลข ผลลัพธ์

543
01:02:10,214 --> 01:02:14,214
เรามี 3 ช่องนะ ทุกคนต้องตีตาราง 3 ช่อง

544
01:02:14,215 --> 01:02:18,215
อันแรกเขียนว่า Input Stack แล้วก็ O

545
01:02:18,218 --> 01:02:22,218
utput นะคะ ถัดมา

546
01:02:22,221 --> 01:02:26,221
ขั้นตอน วิธีการแปลง

547
01:02:26,226 --> 01:02:30,226
จาก Infix ให้เป็น Po

548
01:02:30,230 --> 01:02:34,230
stfix ทุกคนมีชีตที่ครูให้ นะ แบบนี้เลย

549
01:02:34,231 --> 01:02:38,231
ก็คือสิ่งที่อยู่บนสไลด์นะคะ ครูพรินต์ออกมาให้

550
01:02:38,234 --> 01:02:42,234
เรามีอยู่ทั้งหมด 7 ขั้นตอนด้ว

551
01:02:42,237 --> 01:02:46,237
ยกัน มีทั้งหมด 7 ขั้นตอนด้วยกัน

552
01:02:46,240 --> 01:02:50,240
ครูให้เวลา

553
01:02:50,244 --> 01:02:54,244
2 นาที อ่าน 7 ขั้นตอน

554
01:02:54,244 --> 01:02:58,244
นี้ในกระดาษของตัวเองสิคะ

555
01:02:58,247 --> 01:03:02,247
ให้อ่านในกระดาษนะ หรือจะอ่านจากหน้าจอก็ได้

556
01:03:02,251 --> 01:03:06,251
ให้เวลา 2 นาที อยากให้อ่านก่อน

557
01:04:58,326 --> 01:05:02,326
คราวนี้เดี๋ยวมาดูพร้อมกัน

558
01:05:02,326 --> 01:05:06,326
เรามีอยู่ทั้งหมด 7 ขั้นตอนนะคะ เดี๋ยวเราจะ

559
01:05:06,329 --> 01:05:10,329
ลองฝึกนะ แล้วก็เทียบ

560
01:05:10,332 --> 01:05:14,332
ไปทีละขั้น

561
01:05:14,333 --> 01:05:18,333
ขั้นที่ 1 นะคะ กำหนดให้ Stack ว่าง

562
01:05:18,337 --> 01:05:22,337
ก็คือวาดตาราง 3 ช่องนี้

563
01:05:22,340 --> 01:05:26,340
ใช่ไหมคะ อันดับแรก สร้าง Stack ว่าง ก็คือวาด

564
01:05:26,343 --> 01:05:30,343
3 ช่องนะคะ กี่แถว เรายังไม่รู้นะ

565
01:05:30,346 --> 01:05:34,346
แต่มีอยู่ 3 คอลัมน์นะคะ 3 ช่

566
01:05:38,347 --> 01:05:42,347
อง อันนี้คือ Stack ว่าง อันดับแรกนะคะ อันดับที่ 2

567
01:05:42,350 --> 01:05:46,350
อ่านข้อมูลจากซ้ายไปขวา ก็คือ

568
01:05:46,354 --> 01:05:50,354
อ่านข้อมูลทีละตัวใช่ไหมคะ เลข 5

569
01:05:50,357 --> 01:05:54,357
เครื่องหมายบวก เลข 2 เครื่องหมายคูณ แล้วก็เลข 2

570
01:05:54,358 --> 01:05:58,358
อันนี้คืออ่านจากซ้ายไปขวา

571
01:05:58,358 --> 01:06:02,358
ทีละตัวนะคะ แล้วก็อ่านเข้ามาทีละตัว

572
01:06:02,361 --> 01:06:06,361
สมมติ ครูใช้ตัวเลขนะคะ

573
01:06:06,361 --> 01:06:10,361
เช่น

574
01:06:14,366 --> 01:06:18,366
อ่านข้อมูลจากซ้ายไปขวา ตัวแรก ก็คือ

575
01:06:18,368 --> 01:06:22,368
5 ใช่ไหม อ่านจากซ้าย ซ้าย ก็คือตัวแรก

576
01:06:22,369 --> 01:06:26,369
นะคะ ก็คือเลข 5 ถัดมา

577
01:06:26,372 --> 01:06:30,372
ขั้นถัดมาเป็นขั้นที่ 3

578
01:06:30,372 --> 01:06:34,372
ถ้าข้อมูลที่อ่านเข้ามา

579
01:06:34,373 --> 01:06:38,373
เป็นตัวเลข เช่น

580
01:06:38,376 --> 01:06:42,376
เลข 5 ใช่ไหมคะ ข้อมูลที่เราอ่านเข้ามา

581
01:06:42,379 --> 01:06:46,379
คือ เลข 5 มันเป็นตัวเลขใช่ไหม ใช่ เอามัน

582
01:06:46,384 --> 01:06:50,384
ไปไว้ที่ไหน เอามันไปไว้ที่ช่องผลลัพธ์ ก็คือ

583
01:06:50,387 --> 01:06:54,387
ช่องสุดท้าย

584
01:06:54,388 --> 01:06:58,388
ก็คือช่องนี้ใช่ไหมคะ ช่อง Output

585
01:06:58,390 --> 01:07:02,390
ถัดมา ถ้าตัวที

586
01:07:02,390 --> 01:07:06,390
่เราอ่านเข้ามานี่ มันไม่ใช่ตัวเลข แสดงว่า

587
01:07:06,391 --> 01:07:10,391
มันต้องเป็นเครื่องหมายทางคณิตศาสตร์

588
01:07:10,391 --> 01:07:14,391
อะไรสักอย่างหนึ่งนี่ล่ะ เช่น เครื่องหมายบวก

589
01:07:14,391 --> 01:07:18,391
ไหมคะ เครื่องหมายบวก

590
01:07:18,394 --> 01:07:22,394
เราอ่านเครื่องหมายบวกเข้ามา

591
01:07:22,398 --> 01:07:26,398
แล้วเขาให้เราเช็กก่อน ว่า

592
01:07:26,401 --> 01:07:30,401
แล้วใน Stack มันมีค่าอยู่หรือเปล่า Stack ก็คือช่องนี่

593
01:07:30,404 --> 01:07:34,404
ช่องนี้ ช่องที่ 2 นี่ มัน

594
01:07:34,404 --> 01:07:38,404
มีค่าอยู่ไหม ถ้ามันไม่มีค่าอยู่เลย

595
01:07:38,408 --> 01:07:42,408
ก็หย่อนมันลงไปใน Stack

596
01:07:42,408 --> 01:07:46,408
แต่ถ้าใน Stack มันมีข้อมูล

597
01:07:46,411 --> 01:07:50,411
อยู่แล้ว เราจะต้องทำการ

598
01:07:50,411 --> 01:07:54,411
เปรียบเทียบก่อน ว่าข้อมูล

599
01:07:54,412 --> 01:07:58,412
ที่เราอ่านเข้ามานี่

600
01:07:58,415 --> 01:08:02,415
มันมีค่ามากกว่า หรือน้อยกว่าตัวที่อยู่ใน

601
01:08:02,416 --> 01:08:06,416
Stack

602
01:08:06,419 --> 01:08:10,419
ถ้ามันมากกว่า

603
01:08:10,419 --> 01:08:14,419
ถ้ากรณีที่ตัวที่เราอ่านนี่ มีค่ามากกว่า

604
01:08:14,419 --> 01:08:18,419
ก็หย่อนลงไปใน Stack ได้เลย

605
01:08:18,422 --> 01:08:22,422
ถ้าสิ่งที่

606
01:08:22,425 --> 01:08:26,425
เราอ่านเข้ามามันมีค่าน้อยกว่าสิ่งที่

607
01:08:26,429 --> 01:08:30,429
อยู่ใน Stack

608
01:08:30,432 --> 01:08:34,432
ให้เอาเครื่องหมายใน Stack

609
01:08:34,432 --> 01:08:38,432
ออกไปไว้ที่ผลลัพธ์

610
01:08:38,435 --> 01:08:42,435
แล้วเอาเครื่องหมายตัวที่เราอ่านเข้ามา หย่อนลงไปใน Stack

611
01:08:42,438 --> 01:08:46,438
โอเค

612
01:08:46,441 --> 01:08:50,441
ถ้า

613
01:08:50,445 --> 01:08:54,445
เราอ่านจนครบข้อมูล

614
01:08:54,446 --> 01:08:58,446
ทุกตัวแล้ว เรายังมีข้อมูลอยู่ใน Stack

615
01:08:58,448 --> 01:09:02,448
เราก็ดึงมันออกมา ก็คือ Pop มันออกมา

616
01:09:02,451 --> 01:09:06,451
นะคะ เป็นผลลัพธ์

617
01:09:06,452 --> 01:09:10,452
มาดูตัวอย่างนะ ทุกคนถือ... ดูกระดาษที่

618
01:09:10,456 --> 01:09:14,456
เป็นขั้นตอนด้วยนะคะ

619
01:09:26,464 --> 01:09:30,464
โอเค

620
01:09:30,467 --> 01:09:34,467
โจทย์

621
01:09:34,468 --> 01:09:38,468
ที่ครูให้ ทุกคนดูที่หน้าจอนะคะ

622
01:09:38,472 --> 01:09:42,472
ครูมีโจทย์

623
01:09:42,474 --> 01:09:46,474
มาให้นะคะ ก็คือ 5 + 2

624
01:09:46,475 --> 01:09:50,475
x 2

625
01:09:50,481 --> 01:09:54,481
อันดับแรกครูต้องทำอะไร

626
01:09:54,482 --> 01:09:58,482
ครูต้องวาดตาราง 3 ช่อง

627
01:09:58,485 --> 01:10:02,485
วาดตาราง 3 ช่อง จำนวนแถว

628
01:10:02,494 --> 01:10:06,489
ก็เอาข้อมูลตัวเลขกับเครื่องหมาย

629
01:10:06,489 --> 01:10:10,489
มาใส่ทีละบรรทัด 5

630
01:10:10,493 --> 01:10:14,493
บรรทัดที่ 1 ถูกไหมคะ บวกบรรทัด

631
01:10:14,494 --> 01:10:18,494
ใส่เลข 2 บรรทัดถัดมาใส่เครื่องหมายคูณ

632
01:10:18,495 --> 01:10:22,495
แล้วก็ใส่เลข 2

633
01:10:22,497 --> 01:10:26,497
เราก็จะวาดตารางเรียบร้อยแล้วนะคะ จำนวนแถว

634
01:10:26,499 --> 01:10:30,499
ขึ้นอยู่กับจำนวนข้อมูล

635
01:10:30,502 --> 01:10:34,502
ในโจทย์ว่ามีกี่ตัว ก็สร้างแถว

636
01:10:34,503 --> 01:10:38,503
ใส่ข้อมูลให้เลย

637
01:10:38,504 --> 01:10:42,504
เรากำหนด

638
01:10:42,508 --> 01:10:46,508
stack ว่างแล้วใช่ไหมคะ

639
01:10:46,508 --> 01:10:50,508
ถัดมา ต้องอ่านข้อมูลทีละตัว

640
01:10:50,511 --> 01:10:54,511
เราต้องอ่านข้อมูลทีละตัว จากซ้าย

641
01:10:54,512 --> 01:10:58,512
ไปขวา ตัวแรกคืออะไรคะ

642
01:10:58,516 --> 01:11:02,516
คือ 5 ใช่ไหม ครูเขียนเรียงแล้ว

643
01:11:02,519 --> 01:11:06,519
5 + ... มี 2 มีคูณ แล้วก็มี 2

644
01:11:06,522 --> 01:11:10,522
อันนี้คือข้อมูลที่เราอ่านจากซ้ายไปขวา

645
01:11:10,526 --> 01:11:14,526
ตัวแรกเป็นตัวเลขใช่ไหมคะ

646
01:11:14,526 --> 01:11:18,526
มันเป็นตัวเลขแล้วมันตรงกับข้อไหน

647
01:11:18,530 --> 01:11:22,530
ในขั้นตอน ข้อ

648
01:11:22,530 --> 01:11:26,530
3 ที่บอกว่าถ้าเป็นตัวเลข

649
01:11:26,533 --> 01:11:30,533
ให้เอาไปไว้ที่ไหน เอาไปไว้ที่

650
01:11:30,539 --> 01:11:34,539
ผลลัพธ์  ถ้าเป็น

651
01:11:34,540 --> 01:11:38,540
ตัวเลข เอาไปไว้ที่ผลลัพธ์ได้เลย

652
01:11:38,542 --> 01:11:42,542
ถัดมา

653
01:11:42,544 --> 01:11:46,544
เจอเครื่องหมายบวกนะคะ เจอเครื่องหมายบวก

654
01:11:46,547 --> 01:11:50,547
ตอนนี้ ใน Stack มันไม่มีค่า

655
01:11:50,550 --> 01:11:54,550
อะไรเลย ทำอย่างไรคะ

656
01:11:54,552 --> 01:11:58,552
ก็ใส่ได้เลย ใส่เครื่องหมายบวก

657
01:11:58,554 --> 01:12:02,554
ลงมาได้เลย ถ้ามันเป็น Stack ว่าง เห็นไหมคะ

658
01:12:02,557 --> 01:12:06,557
ตัวบนเป็น Stack ว่าง เราก็เอาใส่ได้เลย

659
01:12:06,560 --> 01:12:10,560
แล้วก็เขียน 5 ลงมาเหมือนเดิมนะคะ

660
01:12:10,563 --> 01:12:14,563
ยก 5 ลงมาเหมือนเดิมนะ

661
01:12:14,564 --> 01:12:18,564
ดู ดูพร้อมครูก่อนนะ

662
01:12:18,568 --> 01:12:22,568
เดี๋ยวครู...

663
01:12:22,570 --> 01:12:26,570
จะถ่ายรูป

664
01:12:26,573 --> 01:12:30,573
เอาขึ้น Classroom ให้

665
01:12:30,577 --> 01:12:34,577
ถัดมา เลข 2 ใช่ไหมคะ เลข 2 มันเป็นอะไร

666
01:12:34,578 --> 01:12:38,578
มันเป็นตัวเลข เพราะฉะนั้น ต้องเอาไปไว้ที่ไหน

667
01:12:38,581 --> 01:12:42,581
ไปไว้ที่ผลลัพธ์

668
01:12:42,585 --> 01:12:46,585
ตรงกับข้อ 3 ในขั้นตอนนะ

669
01:12:46,589 --> 01:12:50,589
เอา 2 มาไว้ที่ Output แต่ต้องเขียน

670
01:12:50,593 --> 01:12:54,593
หลัง ก็คือเขียนต่อจากเลข 5

671
01:12:54,594 --> 01:12:58,594
นะคะ

672
01:13:02,599 --> 01:13:06,599
ถัดมา

673
01:13:06,604 --> 01:13:10,604
ยกเครื่องหมายบวกลงมาด้วยนะ

674
01:13:10,608 --> 01:13:14,608
เพราะมันอยู่ใน Stack นะคะ เรายังไม่ได้เอาอะไรออก

675
01:13:14,608 --> 01:13:18,608
หรือเอาอะไรเข้าเพิ่ม

676
01:13:18,609 --> 01:13:22,609
ถัดมา เป็นเครื่องหมายคูณ

677
01:13:22,612 --> 01:13:26,612
ใน Stack

678
01:13:26,616 --> 01:13:30,616
เรามีเครื่องหมายบวกอยู่แล้วใช่ไหมคะ

679
01:13:30,619 --> 01:13:34,619
ใน Stack นี่ เรามีเครื่องหมายบวกอยู่แล้ว

680
01:13:34,620 --> 01:13:38,620
ตัวที่เราอ่านเข้ามา คือ คูณ เรา

681
01:13:38,623 --> 01:13:42,623
จะต้องทำการเปรียบเทียบ

682
01:13:42,627 --> 01:13:46,627
ค่าที่เราอ่านเข้ามาใหม่ คือ คูณ

683
01:13:46,629 --> 01:13:50,629
กับตัวเดิมที่อยู่ใน Stack

684
01:13:50,633 --> 01:13:54,633
คือ บวก เราเปรียบเทียบ ถูกไหมคะ

685
01:13:54,633 --> 01:13:58,633
กับตัวบนสุด คือ เครื่องหมายบวก สิ่งท

686
01:13:58,636 --> 01:14:02,636
ี่เราพบคืออะไร คูณมีค่า

687
01:14:02,639 --> 01:14:06,639
มากกว่าบวก ให้ทำอย่างไร

688
01:14:06,639 --> 01:14:10,639
ก็เอาคูณหย่อนลงมาได้เลย

689
01:14:10,644 --> 01:14:14,644
ใส่คูณ

690
01:14:14,644 --> 01:14:18,644
ลงไปใน Stack ได้เลยนะคะ ผลลัพธ์ก็เป็นเหมือนเดิม

691
01:14:18,647 --> 01:14:22,647
ตัวถัดมา คือ เลข 2

692
01:14:22,651 --> 01:14:26,651
เลข 2 มันเป็นตัวเลขใช่ไหม เอามาไว้ที่

693
01:14:26,653 --> 01:14:30,653
ผลลัพธ์นะคะ เอามาต่อด้านหลัง

694
01:14:30,656 --> 01:14:34,656
เสร็จแล้ว เราพบว่า

695
01:14:34,657 --> 01:14:38,657
ไม่มีข้อมูลแล้ว ข้อมูลมันหมดแล้วน่ะ

696
01:14:38,660 --> 01:14:42,660
ข้อมูลมันหมดแล้วนะคะ แต่สิ่งที่เราเจอคืออะไร

697
01:14:42,661 --> 01:14:46,661
ใน Stack ยังมีข้อมูลอยู่

698
01:14:46,661 --> 01:14:50,661
เพราะฉะนั้น ต้องดึงค่า

699
01:14:50,664 --> 01:14:54,664
ออกจาก Stack ให้หมด เราเอาอะไรออกมาก่อนคะ

700
01:14:54,667 --> 01:14:58,667
ตัวล่าสุด ตัวบนสุด คือ คูณ

701
01:14:58,668 --> 01:15:02,668
เอาคูณมาต่อท้ายที่ Output หรือว่าผลลั

702
01:15:02,671 --> 01:15:06,671
พธ์ เอาคูณออกมาแล้ว มันเหลืออีกตัวหนึ่งใช่ไหม

703
01:15:06,674 --> 01:15:10,674
ก็เอาบวกออกมา

704
01:15:10,679 --> 01:15:14,679
อันนี้คือผลลัพธ์ ผลลัพธ์สุดท้าย

705
01:15:14,680 --> 01:15:18,680
นะคะ

706
01:15:18,684 --> 01:15:22,684
จะอยู่ในรูปแบบของ Postfix คือ แปลงนิพจน์

707
01:15:26,690 --> 01:15:30,690
ได้ไหมคะ เดี๋ยวเรามาทำพร้อมกันอีกตัวหนึ่ง

708
01:15:30,693 --> 01:15:34,693

709
01:15:54,703 --> 01:15:58,703
3 + 5 x 1

710
01:16:10,716 --> 01:16:14,716
ครูมีโจทย์ใช่ไหมคะ 3 + 5 x 1

711
01:16:14,716 --> 01:16:18,716
ผลลัพธ์เท่ากับเท่าไรเอ่ย ตอบ

712
01:16:18,720 --> 01:16:22,720
เท่ากับ

713
01:16:22,720 --> 01:16:26,720
อันนี้ตอบเท่ากับเท่าไรเอ่ย

714
01:16:26,723 --> 01:16:30,723
8

715
01:16:30,726 --> 01:16:34,726
ข้างหลังตอบอะไร

716
01:16:34,728 --> 01:16:38,728
ได้เท่ากับอะไรคะ คำตอบ

717
01:16:38,730 --> 01:16:42,730
ก็คือ 8

718
01:16:42,733 --> 01:16:46,733
เอา 5 x 1 ก่อน ได้เท่าไร

719
01:16:46,734 --> 01:16:50,734
ค่อยบวกกับ 3

720
01:16:50,740 --> 01:16:54,738
5 x 1 เป็น 5 แล้วบวกกับ 3

721
01:16:54,738 --> 01:16:58,738
ก็จะเท่ากับ 8

722
01:16:58,738 --> 01:17:02,738
เดี๋ยวเราจะมาทำ จะมาแปลงนิพจน์กัน

723
01:17:02,739 --> 01:17:06,739
นะคะ แล้วเราจะมาหาค่าว่ามันได้ 8 ได้อย่างไร

724
01:17:06,739 --> 01:17:10,739
อันนี้เรากำลังจะมาแสดงวิธีทำ

725
01:17:10,742 --> 01:17:14,742
ของการได้ค่าว่า 8 มันมาจากไหน เราสั่งให้คอมพิวเตอร์

726
01:17:14,743 --> 01:17:18,743
คิดแบบไหน อันดับแรก วาด Stack ว่าง

727
01:17:18,746 --> 01:17:22,746
ใช่ไหม ครูบอกว่าต้องมีคอลัมน์อยู่ 3 คอลัมน์

728
01:17:34,754 --> 01:17:38,754
ครูมี 3 คอลัมน์แล้ว มี

729
01:17:38,758 --> 01:17:42,758
Input Stack

730
01:17:42,762 --> 01:17:46,762
แล้วก็ Output

731
01:17:46,765 --> 01:17:50,765
จากนั้นครูวาดตารางเลย

732
01:17:50,768 --> 01:17:54,768
โดยเอาข้อมูลมาใส่ในแต่ละแถวเลยนะคะ

733
01:17:54,769 --> 01:17:58,769
ครูอ่านเข้ามาทีละตัว

734
01:17:58,772 --> 01:18:02,772
จากซ้ายไปขวา ตัวแรก คือ 3 ถัดมา

735
01:18:02,773 --> 01:18:06,773
คือ เครื่องหมายบวก เลข 5

736
01:18:06,776 --> 01:18:10,776
นะคะ เครื่องหมายคูณ

737
01:18:10,776 --> 01:18:14,776
แล้วก็เลข 1 อันนี้ครูวาดตารา

738
01:18:14,777 --> 01:18:18,777
งเสร็จแล้ว

739
01:18:26,787 --> 01:18:30,787
ทุกคน

740
01:18:30,792 --> 01:18:34,792
วาดตามครูก่อนเลย เราวาด

741
01:18:34,792 --> 01:18:38,792
ตารางเปล่า ๆ แบบนี้ก่อนนะคะ

742
01:18:38,793 --> 01:18:42,793
คอลัมน์แรกหรือช่องแรก เอา

743
01:18:42,794 --> 01:18:46,794
ตัวเลขกับเครื่องหมาย

744
01:18:46,797 --> 01:18:50,797
มาเรียงใส่ทีละบรรทัด

745
01:20:02,841 --> 01:20:06,841
คราวนี้

746
01:20:06,845 --> 01:20:10,845
พอทุกคนลอกตารางเสร็จแล้วใช่ไหมคะ เดี๋ยวเราจะมาทำด้วยกัน

747
01:20:10,848 --> 01:20:14,848
เริ่มต้นตัวแรก

748
01:20:14,849 --> 01:20:18,849
ใช่ไหมคะ ทุกคน เริ่มต้นตัวแรก มันเป็นตัวเลข

749
01:20:18,854 --> 01:20:22,854
ใช่หรือเปล่า มันเป็นตัวเลข เพราะฉะนั้น เอาไปไว้ที่ช่องทางไหน

750
01:20:22,855 --> 01:20:26,855
ทางขวา

751
01:20:26,855 --> 01:20:30,855
ใส่ก่อน เลข 3 ใช่ ถูกต้อง

752
01:20:30,858 --> 01:20:34,858
ถัดมา

753
01:20:34,859 --> 01:20:38,859
เป็นเครื่องหมายบวกใช่ไหมคะ

754
01:20:38,862 --> 01:20:42,862
เป็นเครื่องหมายบวก ตรงนี้มีอะไรไหม ไม่มี

755
01:20:42,865 --> 01:20:46,865
เพราะฉะนั้น เอา + มาใส่ตรงนี้ได้เลยไหม

756
01:20:46,868 --> 01:20:50,868
ได้ ถ้าเป็นเครื่องหมาย เอาลงที่

757
01:20:50,872 --> 01:20:54,872
Stack เพราะฉะนั้น ตอนนี้ Stack

758
01:20:54,873 --> 01:20:58,873
ว่าง ก็ใส่เครื่องหมายบวกได้เลย

759
01:20:58,877 --> 01:21:02,877
3 ยกลงมาเหมือนเดิมนะคะ

760
01:21:02,878 --> 01:21:06,878
ตรง Output ยก 3 ลงมาเหมือนเดิม

761
01:21:14,887 --> 01:21:18,887
ถัดมา เลข 5 เป็นตัวเลข

762
01:21:18,890 --> 01:21:22,890
เอาไว้ที่ไหน เอาไว้

763
01:21:22,893 --> 01:21:26,893
Output ใช่ไหม เพราะฉะนั้น เอาของเด

764
01:21:26,896 --> 01:21:30,896
ิมยกลงมาก่อน คือ 3 เราเอาเลขอะไรมาใส่

765
01:21:30,899 --> 01:21:34,899
เลข 5 นะคะ อันนี้

766
01:21:34,900 --> 01:21:38,900
ยกลงมาไหม  เครื่องหมายบวกยกลงมาด้วยนะ

767
01:21:38,902 --> 01:21:42,902
ยกลงมาด้วย

768
01:21:50,909 --> 01:21:54,909
เสร็จแล้ว ถัดมา

769
01:21:54,909 --> 01:21:58,909
เครื่องหมายคูณ

770
01:21:58,912 --> 01:22:02,912
คูณ ต้องเอามาลง Stack ใช่หรือเปล่า แต่คูณ

771
01:22:02,915 --> 01:22:06,915
มันมากกว่าบวกใช่ไหม คูณ

772
01:22:06,919 --> 01:22:10,919
กับบวก อะไรมากกว่ากัน คูณ เพราะฉะนั้น

773
01:22:10,920 --> 01:22:14,920
เราก็ใส่ลงไปใน Stack ได้เลย

774
01:22:14,921 --> 01:22:18,921
โดยเอาของเดิมลงมาก่อน

775
01:22:18,925 --> 01:22:22,925
แล้วก็ใส่เครื่องหมายคูณ

776
01:22:22,928 --> 01:22:26,928
อันนี้ยกลงมาเหมือนเดิมไหม ยกลงมาเหมือนเดิม

777
01:22:30,937 --> 01:22:34,937
ตรงสุดท้าย 1 เอาไว้ที่ไหน

778
01:22:34,937 --> 01:22:38,937
Output แต่มีของเดิมอยู่แล้วใช่ไหม

779
01:22:38,940 --> 01:22:42,940
ยกของเดิมลงมาก่อน แล้วก็ใส่เลข 1

780
01:22:46,946 --> 01:22:50,946
อันนี้ยกลงมาเลยได้ไหม ได้นะคะ ใน Stack

781
01:22:50,949 --> 01:22:54,949
เราก็ยกเครื่องหมายออกมา เครื่องหมายนะคะ

782
01:22:54,949 --> 01:22:58,949
บวกกับคูณ

783
01:23:02,953 --> 01:23:06,953
เสร็จแล้ว

784
01:23:06,957 --> 01:23:10,957
ผลลัพธ์ที่ได้ ตอนนี้ข้อมูลหมดแล้วใช่ไหม

785
01:23:10,960 --> 01:23:14,960
ใน Stack ยังมีอยู่ ใน Stack ยังมีอยู่ ต้อง

786
01:23:14,963 --> 01:23:18,962
เอาออกมา ต้อง Pop ออกมา ใช่ไหมคะ

787
01:23:18,962 --> 01:23:22,962
ยกตรง Output ของเดิมลงมาก่อน Pop

788
01:23:22,964 --> 01:23:26,964
บวกกับคูณ เอาอะไรออกมาก่อน

789
01:23:26,965 --> 01:23:30,965
คูณ แล้วตามด้วยบวก เห็นไหมคะ

790
01:23:30,968 --> 01:23:34,968
เอาตัวแรกออกมาก่อน แล้วก็เอาตัวที่ 2

791
01:23:34,968 --> 01:23:38,968
ออกมา

792
01:23:50,979 --> 01:23:54,979
เดี๋ยวต่ออีกนิดหนึ่งนะคะ เดี๋ยวเขียนตรงนี้ให้เสร็จก่อน

793
01:24:02,981 --> 01:24:06,981
เรายังไม่ได้ค่าเลข 8 เลย

794
01:24:06,984 --> 01:24:10,984
จะทำอย่างไรให้ได้เลข 8

795
01:24:10,987 --> 01:24:14,987

796
01:24:14,988 --> 01:24:18,988
ถัดมา เสร็จหรือยังคะ

797
01:24:18,991 --> 01:24:22,991
เดี๋ยวรอเพื่อน

798
01:24:22,995 --> 01:24:26,995
แป๊บหนึ่งนะ

799
01:24:35,001 --> 01:24:39,001
โอเค เราได้ผลลัพธ์

800
01:24:39,008 --> 01:24:43,008
แล้วใช่ไหมคะ จากตารางที่เราทำใน Stack

801
01:24:47,014 --> 01:24:51,014
พอได้ค่าผลลัพธ์แล้วนี่ คือ ตัวนี้

802
01:24:51,015 --> 01:24:55,015
ใช่ไหม 351 คูณ บวก

803
01:24:55,019 --> 01:24:59,019
มาหาผลลัพธ์ต่อนะคะ ค่านี้จะเป็นค่าสุดท้ายแล้ว

804
01:24:59,022 --> 01:25:03,022
ที่เราจะได้คำตอบออกมา

805
01:25:07,028 --> 01:25:11,028
ตัวแรก ตัวนี้ใช่ไหมคะ

806
01:25:11,031 --> 01:25:15,031
ขั้นตอนถัดมา ถ้าเป็น

807
01:25:15,033 --> 01:25:19,033
ตัวเลข ถ้าเป็นตัวเลข จะ Push

808
01:25:19,040 --> 01:25:23,037
ลง Stack อันนี้อีกอันหนึ่งนะ อีก

809
01:25:23,037 --> 01:25:27,037
ขั้นตอนหนึ่งนะคะ ถ้าเป็นตัวเลขจะ

810
01:25:27,040 --> 01:25:31,040
Push ลง Stack ดูพร้อมครูเลย ตัวที่ 1 มา

811
01:25:31,044 --> 01:25:35,044
คือตัวเลขอะไรคะ เลข 3

812
01:25:35,047 --> 01:25:39,047
เราเอาใส่ใน Stack

813
01:25:39,049 --> 01:25:43,049
ดูพร้อมกันนะ เลข 3

814
01:25:43,053 --> 01:25:47,053
ตัวแรก เอาลง Stack ตัวถัดมา

815
01:25:47,055 --> 01:25:51,055
เลขอะไรคะ เลข 5

816
01:25:51,058 --> 01:25:55,058
ก็เอาเลข 5 Push ลง Stack เหมือนกัน

817
01:25:59,060 --> 01:26:03,060
ตัวถัดมาเลขอะไร

818
01:26:03,062 --> 01:26:07,062
เลข 1 ก็เอาเลข 1

819
01:26:07,073 --> 01:26:11,073
Push ลง Stack เหมือนกัน

820
01:26:19,074 --> 01:26:23,074
ถัดมา

821
01:26:23,075 --> 01:26:27,075
เราเจอเครื่องหมายคูณ ให้

822
01:26:27,078 --> 01:26:31,078
Pop ค่าบนสุดอออกมา แล้ว

823
01:26:31,082 --> 01:26:35,082
วางไว้ขวามือ เอาเลข 1 ออกมา เห็นไหมคะ

824
01:26:35,086 --> 01:26:39,086
จากนั้นใส่เครื่องหมาย

825
01:26:39,086 --> 01:26:43,086
ถ้ามันเครื่องหมายนะ ตัวที่เราอ่านมา เรา Pop

826
01:26:43,090 --> 01:26:47,090
ตัวเลขออกมาก่อน แล้วใส่เครื่องหมาย

827
01:26:47,093 --> 01:26:51,093
แล้วเอาตัวที่ 2 ออกมาแบบนี้

828
01:26:51,096 --> 01:26:55,096
นะคะ เอาตัวบนสุดออกมา

829
01:26:55,097 --> 01:26:59,097
แล้วใส่เครื่องหมายที่เราอ่าน แล้วเอา

830
01:26:59,098 --> 01:27:03,098
ตัวข้อมูล

831
01:27:03,101 --> 01:27:07,101
ตัวเลขที่อยู่ใน Stack ตัวถัดมานี่ออกมา ได้ผลลัพธ์เป็นอะไรคะ

832
01:27:07,107 --> 01:27:11,107
5 x 1 เป็น 5

833
01:27:11,110 --> 01:27:15,109
ตอนนี้ใน Stack 1 กับ 5 ออก

834
01:27:15,109 --> 01:27:19,109
ไปแล้วนะ เราได้ผลลัพธ์

835
01:27:19,112 --> 01:27:23,112
คือ 5 แล้วอย่างไรต่อ

836
01:27:23,116 --> 01:27:27,116
ก็ Push ลง Stack

837
01:27:27,119 --> 01:27:31,119
เอาเลข 5 นี่ Push ลงไปใน Stack

838
01:27:31,122 --> 01:27:35,122
เดิมมี 3 ใช่ไหม ตอนนี้เอาออกไปแล้ว 2 เหลือ 3

839
01:27:35,124 --> 01:27:39,124
พอคูณเสร็จ เอา 5 กลับเข้ามา

840
01:27:43,130 --> 01:27:47,130
ดูนะคะ ถัดมา

841
01:27:47,130 --> 01:27:51,130
อ่านเครื่องหมายบวก

842
01:27:51,134 --> 01:27:55,134
ทำเหมือนเดิมเลย เอาอะไรออกมาคะ

843
01:27:59,140 --> 01:28:03,140
เอา 5 ออกมาไว้ทางขวามือ แล้วก็ใส่เครื่องหมายบวก

844
01:28:03,143 --> 01:28:07,143
แล้วก็เอา 3 ออกมา คำตอบเป็นเท่าไรคะ

845
01:28:07,146 --> 01:28:11,146
เป็น 8

846
01:28:15,150 --> 01:28:19,150
แล้วก็เอา 8 ใส่ลงไปใน Stack จะเหลือเป็นค่าสุดท้าย

847
01:28:19,156 --> 01:28:23,154
นี่คือคำตอบของ

848
01:28:23,154 --> 01:28:27,154
โจทย์ข้อนี้ ได้เท่ากันเลยไหม

849
01:28:27,159 --> 01:28:31,159
ได้เท่ากันเลย คือ 8

850
01:28:31,160 --> 01:28:35,160
จะเห็นว่านี่คือกระบวนการที่คอมพิวเตอร์คิดค่า

851
01:28:35,161 --> 01:28:39,160
ตัวเลขให้เรานะคะ กว่าจะได้เลข 8

852
01:28:39,160 --> 01:28:43,160
ออกมานี่ คอมพิวเตอร์ต้องคิดแบบนี้นะคะ

853
01:28:55,163 --> 01:28:59,163
โอเค

854
01:28:59,165 --> 01:29:03,165
ใครเสร็จแล้ว

855
01:29:03,168 --> 01:29:07,168
ครูให้เบรกอีก 5 นาที จดตัวนี้ให้เสร็จนะคะ

856
01:29:07,170 --> 01:29:11,170
เสร็จแล้ว ครูให้เบรก 5 นาที

857
01:39:27,577 --> 01:39:31,577
ค่ะ เดี๋ยวมาต่ออีกนิดหนึ่ง

858
01:39:35,578 --> 01:39:39,578
คราวนี้มาดูอีก 1 ตัวอย่างนะคะ

859
01:39:43,582 --> 01:39:47,582
ครูมีโจทย์ให้

860
01:39:51,590 --> 01:39:55,589
5 x 2

861
01:39:55,589 --> 01:39:59,589
+ 2

862
01:39:59,593 --> 01:40:03,593
ตอนนี้เราทำ

863
01:40:03,595 --> 01:40:07,595
จาก Prefix ให้เป็น

864
01:40:07,596 --> 01:40:11,596
Postfix ก่อนนะคะ

865
01:40:11,600 --> 01:40:15,600
อันดับแรก

866
01:40:15,601 --> 01:40:19,601
ต้องวาดตารางก่อนใช่ไหมคะ

867
01:40:20,045 --> 01:40:24,003
วาดตาราง Stack ว่าง

868
01:40:24,003 --> 01:40:28,003
ครูก็วาด 3 ช่องเหมือนเดิม แล้วก็

869
01:40:28,006 --> 01:40:32,006
ตรง Input ครูก็เอาข้อมูลแต่ละตัว

870
01:40:32,009 --> 01:40:36,009
มาใส่ลงในแต่ละบรรทัด

871
01:40:52,015 --> 01:40:56,015
เริ่มต้นเลย นะคะ เราหย่อนเข้ามาตัวเลข

872
01:40:56,016 --> 01:41:00,016
คือ เลข 5 ใช่ไหม มันเป็นตัวเลข เพราะฉะนั้น

873
01:41:00,019 --> 01:41:04,019
เอาไปไว้ที่ Output

874
01:41:04,023 --> 01:41:08,023
นะคะ นะ ถ้าเป็นตัวเลข เอาไปไว้ที่ Output

875
01:41:08,026 --> 01:41:12,026
ได้เลย  ตัวถัดมา

876
01:41:12,029 --> 01:41:16,029
เครื่องหมายคูณ

877
01:41:16,029 --> 01:41:20,029
แสดงว่าต้องเอาไปไว้ใน Stack

878
01:41:20,030 --> 01:41:24,030
ตอนนี้ Stack มันเป็น Stack ว่าง

879
01:41:24,033 --> 01:41:28,033
เราก็เลยเอาคูณมาใส่ใน

880
01:41:28,036 --> 01:41:32,036
Stack ได้เลย ส่วน Output

881
01:41:32,039 --> 01:41:36,039
ก็ยก 5 ลงมาเหมือนเดิม

882
01:41:40,044 --> 01:41:44,044
โอเคนะ ยังเป็นเหมือนเดิมอยู่นะ

883
01:41:44,048 --> 01:41:48,048
2 บรรทัดแรก ถัดมา

884
01:41:48,052 --> 01:41:52,052
เจอเลข 2 เลข 2

885
01:41:52,054 --> 01:41:56,054
2 มันเป็นตัวเลข ต้องเอาไปไว้ที่

886
01:41:56,055 --> 01:42:00,055
Output เพราะฉะนั้น 2

887
01:42:00,058 --> 01:42:04,058
จะอยู่ต่อจากเลข 5 นะคะ ใน Stack

888
01:42:04,059 --> 01:42:08,059
ก็ยกลงมาเหมือนเดิม

889
01:42:12,065 --> 01:42:16,065
ก็ถึงตรงนี้นะคะ

890
01:42:20,070 --> 01:42:24,070
ถัดมา ข้อมูลที่เราอ่านมา

891
01:42:24,074 --> 01:42:28,074
คืออะไร เครื่องหมายบวก พอเราเจอ

892
01:42:28,075 --> 01:42:32,075
เครื่องหมายบวก ครูบอกว่าต้องเอามัน

893
01:42:32,078 --> 01:42:36,078
ไปไว้ใน Stack แต่ก่อนอื่น ก่อนที่จะ

894
01:42:36,078 --> 01:42:40,078
เอาไปไว้ใน Stack เดิม

895
01:42:40,079 --> 01:42:44,079
เรามีข้อมูลใน Stack หรือเปล่า มีใช่หรือเปล่า มีเครื่องหมายคูณ

896
01:42:44,082 --> 01:42:48,082
เพราะฉะนั้น เร

897
01:42:48,087 --> 01:42:52,087
าต้องเปรียบเทียบความสำคัญก่อน บวก

898
01:42:52,089 --> 01:42:56,089
มันน้อยกว่าหรือมากกว่าคูณ

899
01:42:56,089 --> 01:43:00,089
น้อยกว่า ใช่ไหม บวก

900
01:43:00,093 --> 01:43:04,093
มีค่าน้อยกว่าคูณ เพราะฉะนั้น

901
01:43:04,096 --> 01:43:08,096
ทำอย่างไรคะ เอาคูณ

902
01:43:08,098 --> 01:43:12,098
ออกมา

903
01:43:12,101 --> 01:43:16,101
บวกมีค่าน้อยกว่าคูณ เพราะฉะนั้น

904
01:43:16,102 --> 01:43:20,102
ต้องเอา

905
01:43:20,105 --> 01:43:24,105
ข้อมูลที่อยู่บน Stack นี่ คือ คูณ เอามาไว้ที่

906
01:43:24,108 --> 01:43:28,108
Output เห็นไหมคะ

907
01:43:28,112 --> 01:43:32,112
เอามาไว้ที่ Output เสร็จแล้ว เราถึงเอา

908
01:43:32,115 --> 01:43:36,115
เครื่องหมายบวก Push ลงไปใน Stack

909
01:43:36,116 --> 01:43:40,116
นะคะ แล้วค่อยเอาเครื่องหมายบวก

910
01:43:40,119 --> 01:43:44,119
ใส่ลงไปใน Stack ได้เลย เพราะ ว่า Stack มันว่าง

911
01:43:44,122 --> 01:43:48,122
เพราะฉะนั้น ตรง Output จะเป็น

912
01:43:48,125 --> 01:43:52,125
5, 2 แล้วก็เครื่องหมายคูณ

913
01:43:52,129 --> 01:43:56,129
ทำไมคูณ

914
01:43:56,130 --> 01:44:00,130
ถึงต้องออกมา เพราะบวกมันน้อยกว่าคูณ

915
01:44:00,132 --> 01:44:04,132
เห็นไหมคะ บวกมันน้อยกว่าคูณ

916
01:44:04,134 --> 01:44:08,134
เลยเอาคูณออกมา

917
01:44:08,136 --> 01:44:12,136
ถัดมา เลขอะไรคะ เลข 2

918
01:44:12,139 --> 01:44:16,139
เอาไปไว้ที่ Output ได้เลย ก็เอามันไปต่อท้ายคูณ

919
01:44:16,140 --> 01:44:20,140
ใช่หรือเปล่า เพราะมันคือคูณ

920
01:44:20,144 --> 01:44:24,144
เอา 2 มาต่อท้าย

921
01:44:28,151 --> 01:44:32,151
ตอนนี้เราอ่านข้อมูลครบหมดแล้ว

922
01:44:32,154 --> 01:44:36,154
แต่ใน Stack มันยังมีบวกค้างอยู่ เพราะฉะนั้น

923
01:44:36,154 --> 01:44:40,154
ต้อง Pop มันออกมา แ

924
01:44:40,155 --> 01:44:44,155
ล้วไว้ข้างหลังเลยนะคะ Pop มันออกมา แล้วไว้ข้างหลัง

925
01:45:24,188 --> 01:45:28,188
โอเคนะ

926
01:45:28,191 --> 01:45:32,191
แบบฝึกหัด ช่วยครูทำหน่อยตอนนี้เลย

927
01:45:32,194 --> 01:45:36,194
ครูโจทย์ให้นะคะ 3 หาร 1

928
01:45:36,195 --> 01:45:40,195
ลบ 2 แล้วครูก็บอกว่าหาร

929
01:45:40,198 --> 01:45:44,198
นี่ มันมีค่ามากกว่าลบนะ

930
01:45:44,199 --> 01:45:48,199
นะคะ หาค่าผลลัพธ์ของนิพจน์

931
01:45:48,206 --> 01:45:52,206
Postfix ให้ครูหน่อย

932
01:45:52,207 --> 01:45:56,207
ผลลัพธ์สุดท้ายตรงนี้จะได้อะไร เริ่มต้น

933
01:45:56,208 --> 01:46:00,208
ทุกคนตีตารางก่อน

934
01:46:08,217 --> 01:46:12,217
ลองทำดูสิคะ มีกระดาษไหม

935
01:46:12,220 --> 01:46:16,220
ไม่มี มาเอาข้างหน้า

936
01:46:16,220 --> 01:46:20,220
ครูมีกระดาษให้นะ

937
01:46:32,233 --> 01:46:36,233
เร็ว แบบฝึกหัด 1 ข้อนะคะ ทำตอนนี้เลย

938
01:46:48,237 --> 01:46:52,237
เหมือนกับโจทย์ที่ครูให้ไป

939
01:46:52,241 --> 01:46:56,241
นะคะ คล้าย ๆ กับโจทย์ที่เราให้ไป

940
01:46:56,241 --> 01:47:00,241
แล้วเราก็จดแล้วด้วยนะ

941
01:48:40,310 --> 01:48:44,310
เหมือนโจทย์สุดท้ายที่ครูให้ไปเมื่อกี้เลยนะ

942
01:48:44,313 --> 01:48:48,313
ลบ

943
01:48:48,318 --> 01:48:52,318
มันน้อยกว่าหารใช่ไหมคะ เรา

944
01:48:52,321 --> 01:48:56,321
เปรียบเทียบกัน ลบมันน้อยกว่าหาร

945
01:48:56,322 --> 01:49:00,322
เพราะฉะนั้น

946
01:49:00,325 --> 01:49:04,325
ต้องเอาหารออกมา

947
01:54:20,529 --> 01:54:24,529
คราวนี้นะคะ ดูด้วยกัน

948
01:54:28,534 --> 01:54:32,534
3

949
01:54:32,536 --> 01:54:36,536
เอา 3 ไปไว้ที่ไหนคะ ที่ Output

950
01:54:36,537 --> 01:54:40,537
เห็นไหมคะ เอา 3 ไปไว้ที่ Output

951
01:54:40,538 --> 01:54:44,538
เครื่องหมายหาร เอาเครื่องหมายหารไปไว้ที่ไหน Stack

952
01:54:44,541 --> 01:54:48,541
เพราะมันเป็น Stack ว่าง เราก็หย่อนเครื่องหมา

953
01:54:48,542 --> 01:54:52,542
ยหารได้เลย Output เรายกมันลงมาด้วยนะ

954
01:54:56,544 --> 01:55:00,544
ถัดไป เราอ่านเจอเลข 1 ใช่ไหมคะ เราต้องเอาเลข 1 ไปไว้

955
01:55:00,546 --> 01:55:04,546
ที่ไหน Output

956
01:55:04,548 --> 01:55:08,548
เอาของเดิมยกลงมาก่อน เสร็จแล้วก็เติมเลข 1 ลงไป

957
01:55:08,551 --> 01:55:12,551
ใน Stack ยังเหมือนเดิมนะ

958
01:55:12,554 --> 01:55:16,554
เรายังมีเครื่องหมายหารอยู่ เราก็ยกลงมาได้เลย

959
01:55:16,558 --> 01:55:20,558
ถัดมา

960
01:55:20,562 --> 01:55:24,562
เครื่องหมายลบใช่ไหมคะ เดิม ใน Stack เรามี

961
01:55:24,565 --> 01:55:28,565
หารอยู่แล้วใช่ไหม ครูเขียนให้ดูก่อน

962
01:55:28,569 --> 01:55:32,569
เรามีหารอยู่แล้วนี่ เราเอาลบนี่ มาเทียบกับ

963
01:55:32,572 --> 01:55:36,572
หาร ปรากฎว่า

964
01:55:36,573 --> 01:55:40,573
ค่าลบมันน้อยกว่า

965
01:55:40,576 --> 01:55:44,576
ให้ทำอย่างไร

966
01:55:44,579 --> 01:55:48,579
ให้เอาหารนี่ เอาออกมาไว้ที่

967
01:55:48,583 --> 01:55:52,583
Output เพราะฉะนั้น จะได้เป็น

968
01:55:52,587 --> 01:55:56,587
3, 1 แล้วก็หาร ตรงนี้หายไปใช่ไหมคะ

969
01:55:56,588 --> 01:56:00,588
เสร็จแล้วก็ใส่ค่าลบ

970
01:56:00,590 --> 01:56:04,590
ลงมาใน Stack

971
01:56:04,593 --> 01:56:08,593
ถัดมาหย่อนอะไร

972
01:56:08,598 --> 01:56:12,598
2 เอาไปไว้ที่ Output ยกของเดิมลงมาก่อนที่ Output แล้วก็ใส่เลข 2

973
01:56:12,602 --> 01:56:16,602
ใน Stack เหลืออะไร

974
01:56:16,603 --> 01:56:20,603

975
01:56:20,606 --> 01:56:24,606

976
01:56:24,607 --> 01:56:28,607
คะ เครื่องหมายลบ ครบหมดแล้วนะ เราต้องเอาค่าจาก Stack ออกมา เป็น

977
01:56:28,607 --> 01:56:32,607
3 1 หาร 2 แล้วอะไรคะ ลบ

978
01:56:32,609 --> 01:56:36,609
เห็นไหม

979
01:56:36,610 --> 01:56:40,610
เราเอาค่าที่อยู๋ใน Stack น่ะ ตัวสุดท้ายมาใส่ข้างหล

980
01:56:40,613 --> 01:56:44,613
ังได้เลยนะคะ

981
01:56:44,616 --> 01:56:48,616
โอเค

982
01:56:48,617 --> 01:56:52,617
อีกข้อหนึ่ง

983
01:56:52,618 --> 01:56:56,618
แล้วจะให้เลิก ครูให้โจทย์มาแค่นี้เอง วาดตารางมาให้ด้วย

984
01:57:12,632 --> 01:57:16,632
โจทย์ข้อนี้ อันดับแรก

985
01:57:16,633 --> 01:57:20,633
วาดตารางก่อนเลย ตีตารางค่ะ

986
01:59:48,707 --> 01:59:52,707
ดูนิดหนึ่ง

987
01:59:52,707 --> 01:59:56,707
คูณมันมากกว่าลบ

988
01:59:56,708 --> 02:00:00,708
ใช่หรือเปล่า คูณมันมีค่ามากกว่าลบ

989
02:00:00,709 --> 02:00:04,709
เพราะฉะนั้นทำอะไร ก็ Push คูณลง  Stack ได้เลย

990
02:00:04,713 --> 02:00:08,713
นะคะ Push คูณ

991
02:00:08,716 --> 02:00:12,716
ลงใน Stack ได้เลย

992
02:04:12,861 --> 02:04:16,861
โอเค

993
02:04:16,862 --> 02:04:20,862
มาดูนะคะ

994
02:04:20,865 --> 02:04:24,865
6

995
02:04:24,865 --> 02:04:28,865
เป็นตัวเลข เอาไว้ที่ Output ใช่หรือเปล่า

996
02:04:28,868 --> 02:04:32,868
ลบ เอาไว้ที่ Stack นะคะ

997
02:04:32,870 --> 02:04:36,870
6 ก็ใส่มาเหมือนเดิม

998
02:04:36,871 --> 02:04:40,871
5 เอาไว้ที่ไหนคะ เอาไว้ที่

999
02:04:40,871 --> 02:04:44,871
Output Stack ก็ยกลงมาเหมือนเดิมนะคะ

1000
02:04:44,871 --> 02:04:48,871
ถัดมา คูณ

1001
02:04:48,874 --> 02:04:52,874
เจอคูณ

1002
02:04:52,874 --> 02:04:56,874
ใช่ไหมคะ เจอคูณให้เ

1003
02:04:56,874 --> 02:05:00,874
ปรียบเทียบกับตัวนี้ก่อน ปรากฏว่าคูณมีค่ามากกว่าลบ

1004
02:05:00,878 --> 02:05:04,878
ให้ Push คูณลง Stack

1005
02:05:04,879 --> 02:05:08,879
ได้เลย เพราะฉะนั้น

1006
02:05:08,882 --> 02:05:12,882
Stack เดิมเป็นลบอยู่แล้ว push

1007
02:05:12,882 --> 02:05:16,882
ครูบอกว่า Push ลงมาได้เลยนะคะ เพราะคูณ

1008
02:05:16,882 --> 02:05:20,882
มันมากกว่านะ มันมากกว่านะคะ

1009
02:05:20,885 --> 02:05:24,885
ข้างหลัง คือ 6 กับ 5

1010
02:05:24,888 --> 02:05:28,888
ถัดมา 2

1011
02:05:28,890 --> 02:05:32,890
เป็นตัวเลขไว้ข้างหลังนะคะ

1012
02:05:32,894 --> 02:05:36,894
Stack มีเท่าไร ยกลงมา

1013
02:05:36,895 --> 02:05:40,895
โอเค เสร็จแล้ว หมดแล้วนะ ผลลัพธ์

1014
02:05:40,898 --> 02:05:44,898
สุดท้ายที่ได้ 6, 5, 2

1015
02:05:44,902 --> 02:05:48,902
เอาคูณออกมาก่อน แล้วตามด้วยลบนะคะ

1016
02:05:48,905 --> 02:05:52,905
เห็นนะ โอเค

1017
02:05:56,908 --> 02:06:00,908
ทุกคนดู

1018
02:06:00,910 --> 02:06:04,910
นะคะ

1019
02:06:16,920 --> 02:06:20,920
เราสังเกตนะ

1020
02:06:20,923 --> 02:06:24,923
ทำไมตัวนี้

1021
02:06:24,928 --> 02:06:28,928
เอาหารออกมา ตัวนี้ไม่ได้เอาอะไรออกมานะคะ

1022
02:06:28,930 --> 02:06:32,930
วิธีการสังเกต โอเค

1023
02:06:32,933 --> 02:06:36,933
ลบเทียบกับหาร ลบ

1024
02:06:36,934 --> 02:06:40,934
มันมีค่าน้อยกว่าหาร เห็นไหมคะ

1025
02:06:40,937 --> 02:06:44,937
ลบมีค่าน้อยกว่าหาร

1026
02:06:44,940 --> 02:06:48,940
เลยต้องเอาหาร

1027
02:06:48,943 --> 02:06:52,943
ออกมา

1028
02:06:52,946 --> 02:06:56,946
แต่ถ้า Input

1029
02:06:56,948 --> 02:07:00,948
ที่ใส่เข้าไปนี่ มีค่ามากกว่า เรา

1030
02:07:00,952 --> 02:07:04,952
ก็ใส่ลงไปใน Stack ได้เลย

1031
02:07:04,955 --> 02:07:08,955
ถ้าตัวซ้ายมันมากกว่าตัวบนตรงนี้

1032
02:07:08,959 --> 02:07:12,959
เราก็ใส่ลงไปใน Stack ได้เลยนะคะ

1033
02:07:16,963 --> 02:07:20,963
โอเค

1034
02:07:20,966 --> 02:07:24,966
ต้องกลับไปทบทวนอีกรอบหนึ่งนะ นะคะ

1035
02:07:24,970 --> 02:07:28,970
เดี๋ยวสัปดาห์ เดี๋ยวหน้าครูจะทวน

1036
02:07:28,972 --> 02:07:32,972
ให้อีกรอบหนึ่ง

1037
02:07:36,976 --> 02:07:40,976
โอเค

1038
02:07:40,979 --> 02:07:44,979
เดี๋ยวทั้งหมดนี้ เดี๋ยวครูจะอัปที่ Classroom ให้นะคะ

1039
02:07:44,983 --> 02:07:48,983
เดี๋ยวครูจะไปสแกนให้ แล้วก็อัปท

1040
02:07:48,986 --> 02:07:52,986
ี่ Classroom ให้ โอเค

1041
02:08:17,004 --> 02:08:21,004
เดี๋ยวครูเช็กชื่อหน่อยนะคะ

1042
02:08:49,029 --> 02:08:53,029
ครูเช็กชื่อหน่อย

1043
02:08:53,032 --> 02:08:57,032
ศิริลักษณ์

1044
02:08:57,033 --> 02:09:01,033
02

1045
02:09:01,037 --> 02:09:05,037
มาไหม 02

1046
02:09:05,040 --> 02:09:09,040
คนนี้หรือ

1047
02:09:09,044 --> 02:09:13,044
03

1048
02:09:13,049 --> 02:09:17,049
อดิศร เป็น COVID

1049
02:09:17,049 --> 02:09:21,049
4. นพกิต

1050
02:09:21,050 --> 02:09:25,050
คนนี้ 5.

1051
02:09:25,053 --> 02:09:29,053
พงษ์พร ไหน

1052
02:09:29,057 --> 02:09:33,057
อ๋อ จันทกานต์

1053
02:09:33,059 --> 02:09:37,059
ไหนคะ

1054
02:09:37,060 --> 02:09:41,060
อ๋อ กัญญานัฐ

1055
02:09:41,063 --> 02:09:45,063
กัญญาณัฐ ธัญญาลักษณ์

1056
02:09:45,064 --> 02:09:49,064
อ๋อ โอเค วริษา

1057
02:09:49,069 --> 02:09:53,069
คนนี้

1058
02:09:53,073 --> 02:09:57,073
ภัทรดา 11 ไม่มา

1059
02:09:57,073 --> 02:10:01,073
เทพอักษร

1060
02:10:01,076 --> 02:10:05,076
ธนภัทร 15 โอเค

1061
02:10:05,079 --> 02:10:09,079
ภากร

1062
02:10:09,083 --> 02:10:13,083
ณ์ 16 โอเค ค่ะ เจอกันสัปดาห์หน้า

