#include
#include
void main()
{
int n,i;
float a,min;
clrscr();
cout<<"number : ";
cin>>n; cout<<"number1 : ";
cin>>a;
min=a;
for(i=2; i<=n;i++)
{
cout<<"number"<< i<<":>
< cin>>a;
if(min>a)
{
min=a;
}
}
cout<<"number less than : ";
cout<
}
สรุป Linked List
ลิงค์ลิสต์ (Linked List) เป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่าง ๆ
โดยมีพอยเตอร์เป็นตัวเชื่อมต่อแต่ละอิลิเมนท์ เรียกว่าโนด (Node)
ซึ่งในแต่ละโนดจะประกอบไปด้วย 2 ส่วน คือData จะเก็บข้อมูลของอิลิเมนท์
และส่วนที่สอง คือ Link Field จะทำหน้าที่เก็บตำแหน่งของโนดต่อไปในลิสต์
กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน
1. กระบวนงาน Create List หน้าที่ สร้างลิสต์ว่าง ผลลัพธ์ ลิสต์ว่าง
2. กระบวนงาน Insert Node
3. กระบวนงาน Delete Node
4. กระบวนงาน Search list
5. กระบวนงาน Traverse
6. กระบวนงาน Retrieve Node
7. ฟังก์ชั่น EmptyList
8. ฟังก์ชั่น list count
9. กระบวนงาน destroy list
Linked List แบบซับซ้อน
1. Circular Linked List เป็นลิงค์ลิสต์ที่สมาชิกตัวสุดท้าย
มีตัวชี้ (list) ชี้ไปที่สมาชิกตัวแรก
ของลิงค์ลิสต์ จะมีการทำงานไปในทิศทางเดียวเท่านั้นคือเป็นแบบวงกลม
2. Double Linked List เป็นลิงค์ลิสต์ที่มีทิศทางการทำงานแบบ 2 ทิศทาง
ในลิงค์ลิสต์แบบ 2ทิศทาง
ส่วนข้อมูลจะมีตัวชี้ไปที่ข้อมูลก่อนหน้า (backward pointer)
และตัวชี้ข้อมูลถัดไป(forward pointer)
โครงสร้างข้อมูลแบบเซ็ต
เป็นโครงสร้างข้อมูลที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กัน
ในภาษาซีจะไม่มีประเภทข้อมูลแบบเซ็ตนี้เหมือนกับในภาษาปาสคาล
แต่สามารถใช้หลักการของการดำเนินงานแบบเช็ตมาใช้ได้
วิธีการแก้ปัญหาเบื้องต้น
- จะต้องกำหนดเซ็ตของผู้เรียนที่ลงทะเบียนเรียนในแต่ละวิชา
- นำเซ็ตดังกล่าวที่ได้มาทำการ intersection กัน หากมีเซ็ตใดที่
ทำการ intersect กันแล้ว มีข้อมูลสมาชิกในเซ็ตที่ซ้ำกันอยู่
จะไม่สามารถจัดให้วิชาดังกล่าวอยู่ในวันเวลาเดียวกันได้ตัวอย่างดังกล่าว
เป็นการนำแนวความคิดเรื่องการจัดการแบบเช็ตมาประยุกใช้งาน
โครงสร้างข้อมูลแบบสตริงสตริง (String)
หรือ สตริงของอักขระ (CharacterString) เป็นข้อมูลที่ประกอบไปด้วยตัวอักษร
ตัวเลขหรือเครื่องหมายเรียงติดต่อกันไปรวมทั้งช่องว่าง
การประยุกต์ใช้คอมพิวเตอร์ที่เกี่ยวกับข้อมูลที่เป็นสตริงมีการนำไปใช้
สร้างโปรแกรมประเภทบรรณาธิการข้อความ(text editor)
หรือโปรแกรมประเภทประมวลผลคำ (wordprocessing)
ซึ่งมีการทำงานที่อำนวยความสะดวกหลายอย่างเช่น
การตรวจสอบข้อความ การจัดแนวข้อความในแต่ละย่อหน้า
และการค้นหาคำ เป็นต้น
การกำหนดค่าให้กับสตริงนั้น เราจะใช้เครื่องหมาย doublequote (“ ”)
เช่น “abc” คือ ชุดของอักขระที่มีขนาด 4 (รวม \0 ด้วย)
ข้อสังเกต
string constant are different from character constant
#define NME “Semi”
main ( ){
char *cpntr;cpntr=NME;
printf(“con\n”);
printf(“%s, %u, %c\n”, “con”, “duc”,*“tor”);
printf(““%s, %u, %c\n”, NME, NME,*NME);
printf(““%s, %u, %c\n”, cpntr, cpntr,*cpntr);
}
ผลการรันโปรแกรม
concon, 37,
tSemi, 16,
SSemi, 16, S
Array เป็นโครงสร้างข้อมูลที่เรียกว่า Linear List มี
ลักษณะคล้ายเซตในคณิตศาสตร์สมาชิก คือ อะเรย์จะประกอบ
ด้วยสมาชิกที่มีจำนวนคงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกัน
สมาชิกแต่ละตัวใช้เนื้อที่จัดเก็บที่มีขนาดเท่ากัน เรียงต่อเนื่องใน
หน่วยความจำหลัก
Array int k[5][10] จะเป็นเหมือนเมททริกคือเอามาคูณกัน
จะสามารถเก็บค่าได้ 50 ตัว
subscript ซึ่งเป็นตัวกำหนดขอบเขตของอะเรย์ มีได้
มากกว่า 1 ตัวจำนวน subscript จะเป็น ตัวบอกมิติของอะเรย์
อะเรย์ที่มี subscript มากกว่า 1 ตัวขึ้นไป จะเรียกว่า อะเรย์หลายมิติ
การกำหนด subscriptแต่ละตัวจะประกอบไปด้วย ค่าสูงสุดและ ค่าต่ำสุดค่าต่ำสุด
เรียก ขอบเขตล่าง (lower bound)
ค่าสูงสด เรียก ขอบเขตบน (upper bound)
ขนาดarray = ค่าคูณของ subscript แต่ละตัว
รูปแบบ data-type array-name [expression]
data-type คือ ประเภทข้อมูล array เช่น int char float
array-name คือ ชื่อของ arraystatement เหมือนกับ expression
expression คือ นิพจน์จำนวนเต็มซึ่งระบุจำนวนสมาชิกของ array
array ของ character
character = string
[ ] เรียกว่าวงวงเล็บก้ามปู หรือ วงเล็บใหญ่
หลังLoop forถ้าไม่ใส่ {} จะทำ 1statement
ถ้าจะมีหลายstatementต้องใส่ {} หลังforทุกครั้ง