#include
main()
{
int hour,second;
printf("Enter your hour: ");
scanf("%d",&hour);
second=hour*60;
printf("Second is %d\n",second);
}
#include
main()
{
int hour,second;
cout<<"Enter your hour:";
cin>>hour;
second=hour*60;
cout<<"Second is "<
2. Pop การนำข้อมูลออกจากส่วนบนสุดของสแตก การนำข้อมูลออกจากสแตก ถ้าสแตกมีสมาชิกเพียง 1 ตัว แล้วนำสมาชิกออกจากสแตก จะเกิดสภาวะสแตกว่าง (Stack Empty) คือ ไม่มีสมาชิกอยู่ในสแตกเลย
แต่ถ้าไม่มีสมาชิกในสแตก แล้วทำการ pop สแตก จะทำให้ เกิดความผิดพลาดที่เรียกว่า Stack Underflow
การประยุกต์ใช้สแตค
สามารถนำไปประยุกต์ใช้ในงานด้านปฏิบัติการของเครื่องคอมพิวเตอร์ในขั้นตอนการทำงานเก็บข่าวสารอันดับแรกสุดไว้ใช้หลังสุด เช่น การทำงานของโปรแกรมแปลภาษานำไปใช้ในเรื่องของการเรียกใช้โปรแกรมย่อย การคำนวณนิพจน์ทางคณิตศาสตร์ และรีเคอร์ชั่น
การทำงานของโปรแกรมที่มีโปรแกรมย่อย
สแตคจะเข้ามาช่วยในการทำงานของโปรแกรมหลักที่เรียกใช้โปรแกรมย่อย และแต่ในละโปรแกรมย่อยมีการเรียกใช้โปรแกรมย่อยต่อไป คือ แต่ละจุดของโปรแกรมที่เรียกใช้โปรแกรมย่อยจะเก็บเลขที่ของคำสั่งถัดไปที่เครื่องต้องกลับมาทำงานไว้ในสแตค หลังจากเส็จสิ้นการทำงานของโปรแกรมย่อยแล้วจะทำการ pop ตัวเลขที่คำสั่งออกมาจากสแตค เพื่อกลับไปทำงานที่คำสั่งที่เรียกใช้โปรแกรมย่อย
การคำนวณนิพจน์ทางคณิตศาสตร์
สามารถเขียนได้ 3 รูปแบบ คือ
1. นิพจน์ Infix นิพจน์รูปแบบนี้ operator จะอยู่กลางระหว่างตัวถูกดำเนินการ 2 ตัว
2. นิพจน์ Postfix นิพจน์รูปแบบนี้จะเขียนตัวดำเนินการตัวที่ 1 และ 2 แล้วตามด้วย operator
3. นิพจน์ Prefix นิพจน์รูปแบบนี้จะเขียน operator ก่อนแล้วจึงตามด้วยตัวถูกดำเนินการตัวที่ 1 และ 2
การเขียนโปรแกรมคอมพิวเตอร์ด้วยภาษาระดับสูง คำสั่งที่เป็นพจน์ทางคณิตศาสตร์จะเขียนในรูปแบบ Infix การคำนวณ โดยการที่ตัวแปนภาษาต้องทำการตรวจสอบนิพจน์จากซ้ายไปขวา เพื่อหาเครื่องหมายที่ต้องคำนวณ จึงเริ่มคำนวณได้ ทำแบบนี้ซ้ำๆจนกว่าจะคำนวณเครื่องหมายครบทุกตัว
1. Data จะเก็บข้อมูลข่าวสารที่มีโครงสร้างข้อมูลเบื้องต้นหรือเรียบง่าย
2. Link Field เป็นตัวชี้หรือพอยเตอร์เก็บค่าแอดเดรสใช้อ้างไปยังโหนดถัดไปในหน่วยความจำ
โครงสร้างข้อมูลแบบลิงค์ลิสต์
1. Head Structure ประกอบด้วย 3 ส่วน คือ จำนวนโนดแต่ละลิสต์, พอยเตอร์ที่ชี้ไปยังโหนดที่เข้าถึง และพอยเตอร์ที่ชี้ไปยังข้อมูลแรกของลิสต์
2. Data Node Structure ประกอบด้วยข้อมูลและพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป
กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน
1. กระบวนงาน Create List ทำหน้าที่สร้างลิสต์ว่าง
2. กระบวนงาน Insert Node ทำหน้าที่เพิ่มข้อมูลในลิสต์ บริเวณที่ต้องการ
3. กระบวนงาน Delete Node ทำหน้าที่ลบสมาชิกในลิสต์ บริเวณตำแหน่งที่ต้องการ
4. กระบวนงาน Search list ทำหน้าที่ค้นหาข้อมูลในลิสต์ที่ต้องการ
5. กระบวนงาน Traverse ทำหน้าที่ท่องไปในลิสต์เพื่อเข้าถึงและประมวลผล
6. กระบวนงาน Retrieve Node ทำหน้าที่หาตำแหน่งข้อมูลจากลิสต์
7. ฟังก์ชั่น EmptyList ทำหน้าที่ทดสอบว่าลิสต์ว่าง
8. ฟังก์ชั่น FullList ทำหน้าที่ทดสอบว่าลิสต์เต็มหรือไม่
9. ฟังก์ชั่น list count ทำหน้าที่นับจำนวนข้อมูลที่อยู่ในลิสต์
10. กระบวนงาน destroy list ทำหน้าที่ทำลายลิสต์
Linked List แบบซับซ้อน
1. Circular Linked List หรือลิงค์ลิสต์ทางเดียว โดยปกติการใช้ลิงค์ลิสต์ทางเดียว เมื่อตัวพอยเตอร์ P ชี้ไปยังโหนดหนึ่งจะไม่สามารถชี้กลับไปยังโหนดก่อนหน้านี้ได้ วิธีการอย่าหนึ่งที่ทำให้สามารถวิ่งจากโหนดหนึ่งไปยังโหนดอื่นๆได้ในลิงค์ลิสต์ โดยให้ชี้ของโหนดสุดท้ายซึ่งเดิมเป็นค่า Null
2. Double Linked List ลิงค์ลิสต์ที่มีการทำงาน 2 ทิศทาง บางครั้งการทำงานแบบลิงค์ลิสต์อาจต้องการวิ่งไปยังโหนกต่างๆในลิงค์ลิสต์โดยการถอยกลับไปยังโหนดก่อนหน้าหรือลบแต่ละโหนด เพื่อให้เกิดความสะดวกและประสิทธิภาพ จึงนำลิงค์ลิสต์ 2 ทางมาใช้แทนลิงค์ลิสต์ทางเดียว
2.ให้นักศึกษาหาค่าของ A[2],A[6]จากค่า A={2,8,16,24,9,7,3,8}