วันจันทร์ที่ 27 กรกฎาคม พ.ศ. 2552

ยกตัวอย่างสิ่งที่เกิดขึ้นในชีวิตประจำวัน Last in first out

last in first out ที่เกิดขึ้นในชีวิตประจำวัน
การเก็บรถเข็นในห้างสรรพสินค้า
รถเข็นที่เก็บในห้างพนักงานจะซ้อนรถเข็นซึ่งจะเอา
คันแรกเป็นหลักและเอาคันต่อ ๆ ไปมาซ้อนเข้าเรื่อย ๆ
จนยาว เมื่อนำไปขึ้นห้างพนักก็จะนำตัวสุดท้ายไปวางไว้
เป็นคันแรกในการใช้

DTS : 05-28-07-2552

วันพุธที่ 22 กรกฎาคม พ.ศ. 2552

สรุปการเรียน Lecture 4 เรื่อง Linked List

สรุป Linked List

ลิงค์ลิสต์ (Linked List) เป็นวิธีการเก็บ
ข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่าง ๆ โดยมี
พอยเตอร์เป็นตัวเชื่อมต่อ
แต่ละอิลิเมนท์ เรียกว่าโนด (Node)

โครงสร้างข้อมูลแบบลิงค์ลิสต์จะแบ่งเป็น 2 ส่วน คือ
1. Head Structure จะประกอบไปด้วย 3 ส่วน
ได้แก่ จำนวนโหนดในลิสต์ (Count) พอยเตอร์ที่ชี้ไปยัง
โหนดที่เข้าถึง (Pos) และพอยเตอร์ที่ชี้ไปยังโหนดข้อมูล
แรกของลิสต์ (Head)
2. Data Node Structure จะประกอบไปด้วยข้อมูล

(Data) และพอยเตอร์ที่ชี้ไปยังข้อมูลตัวถัดไป


กระบวนงานและฟังก์ชั่นที่ใช้ดำเนินงานพื้นฐาน
1. กระบวนงาน Create List
หน้าที่ สร้างลิสต์ว่าง
ผลลัพธ์ ลิสต์ว่าง


2. กระบวนงาน Insert Node
หน้าที่เพิ่มข้อมูลลงไปในลิสต์บริเวณตำแหน่ง
ที่ต้องการ
ข้อมูลนำเข้า ลิสต์ ข้อมูล และตำแหน่ง
ผลลัพธ์ ลิสต์ที่มีการเปลี่ยนแปลง


3. กระบวนงาน Delete Node
หน้าที่ ลบสมาชิกในลิสต์บริเวณตำแหน่ง
ที่ต้องการ
ข้อมูลนำเข้า ข้อมูลและตำแหน่ง
ผลลัพธ์ ลิสต์ที่มีการเปลี่ยนแปลง


4. กระบวนงาน Search list
หน้าที่ ค้นหาข้อมูลในลิสต์ที่ต้องการ
ข้อมูลนำเข้าลิสต์
ผลลัพธ์ ค่าจริงถ้าพบข้อมูล ค่าเท็จถ้าไม่
พบข้อมูล


5. กระบวนงาน Traverse
หน้าที่ ท่องไปในลิสต์เพื่อเข้าถึงและ
ประมวลผลข้อมูลนำเข้าลิสต์
ผลลัพธ์ ขึ้นกับการประมวลผล เช่น
เปลี่ยนแปลงค่าใน node , รวมฟิลด์ในลิสต์ ,
คำนวณค่าเฉลี่ยของฟิลด์ เป็นต้น


6. กระบวนงาน Retrieve Node
หน้าที่ หาตำแหน่งข้อมูลจากลิสต์
ข้อมูลนำเข้าลิสต์ผลลัพธ์ ตำแหน่งข้อมูลที่อยู่ในลิสต์


7. ฟังก์ชั่น EmptyList
หน้าที่ ทดสอบว่าลิสต์ว่างข้อมูลนำเข้า ลิสต์
ผลลัพธ์ เป็นจริง ถ้าลิสต์ว่าง
เป็นเท็จ ถ้าลิสต์ไม่ว่าง


8. ฟังก์ชั่น FullList
หน้าที่ ทดสอบว่าลิสต์เต็มหรือไม่ข้อมูล
นำเข้าลิสต์
ผลลัพธ์ เป็นจริง ถ้าหน่วยความจำเต็ม
เป็นเท็จ ถ้าสามารถมีโหนดอื่น


9. ฟังก์ชั่น list count
หน้าที่ นับจำนวนข้อมูลที่อยู่ในลิสต์
ข้อมูลนำเข้าลิสต์
ผลลัพธ์ จำนวนข้อมูลที่อยู่ในลิสต์


10. กระบวนงาน destroy list
หน้าที่ ทำลายลิสต์
ข้อมูลนำเข้า ลิสต์
ผลลัพธ์ ไม่มีลิสต์


Circular Linked List เป็นลิงค์ลิสต์ที่สมาชิก
ตัวสุดท้ายมีตัวชี้ (list) ชี้ไปที่สมาชิกตัวแรกของ
ลิงค์ลิสต์ จะมีการทำงานไปในทิศทางเดียวเท่านั้น
คือเป็นแบบวงกลม



DTS : 04-22-07-2552

วันอังคารที่ 14 กรกฎาคม พ.ศ. 2552

สรุปการเรียน Lecture 3 เรื่อง Set and String

สรุป Set and String

เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งของที่

อยู่(Address) ของตัวแปรที่อยู่ในหน่วยความจำรูป
แบบของมันก็จะมีลักษณะ Type *variable-name
คือ Type =ชนิดของตัวแปร // ส่วน * =
เป็นเครื่องหมายที่แสดงว่าตัวแปรที่ตามหลัง
เครื่องหมายนี้เป็น ตัวแปรพ้อยเตอร์ //variable-name =
เป็นตัวแปรที่ประกาศว่าเป็นชนิดพ้อยเตอร์ตัวอย่าง

เช่น count100 Address2000
คือ ตำแหน่งที่2000 countมีค่าเท่ากับ100สตริง

(String) หรือสตริงของอักขระ (Character String)
เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร อักขระ

ตัวเลขความยาวของสตริง จะถูกกำหนดโดยขนาดของ
สตรีง ต้องจองเนื้อที่ให้กับ(\0) ด้วยการกำหนดค่าให้กับ
สตริงนั้นให้ใช้ เครื่องหมาย Double quote("") ถ้าสมมุติ
ต้องการสตริงสำหรับ ข้อมูลยาวไม่เกิน10อัขระต้องกำหนด
ขนาดอะเรย์11ช่อง เพื่อเก็บ null character(\0) ด้วย

ตัวอย่าง
char *prt หมายความว่า ประกาศว่าตัวแปร prt เป็นตัวแปร

พอยน์เตอร์ ที่ใช้เก็บตำแหน่งเริ่มต้นที่จะเก็บ char
เครื่องหมายที่ใช้ทำงานกับตัวแปรพอยน์เตอร์
1. เครื่องหมาย & เป็นเครื่องหมายที่ใช้เมื่อต้องการให้

เอาค่าตำแหน่งที่ อยู่ของตัวแปรที่เก็บไว้ในหน่วยความจำออกมาใช้
2. เครื่องหมาย * มีการใช้งาน 2 ลักษณะ คือ
- ใช้ในการประกาศ parameter ว่าเป็นตัวแปรแบบพอยน์เตอร์
- ใช้เป็น dereferencing operator จะใช้เมื่อต้องการนำค่า

ที่อยู่ใน ตำแหน่งที่ตัวแปรพอยน์เตอร์นั้นชี้อยู่ออกมาแสดง


แบบฝึกหัด ท้ายบทที่2

1.ให้นักศึกษากำหนดค่าของ Array1มิติ และ Array2มิติ
ตอบ Array 1 มิติ data type

Array 2 มิติ char a [2][3]

2. ให้นักศึกษาหาค่าของ A[2],A[6]จากค่า A={2,8,16,24,9,7,3,8}
ตอบ A[2]= 16, A[6]= 3

3.จากค่าของ int a[2][3]={{6,5,4},{3,2,1}};ให้นักศึกษา หาค่าของ a[1][0]และ a[0][2]
ตอบ a[1][0] = 3, a[0][2]= 4

4.ให้นักศึกษากำหนด Structure ที่มีค่าของข้อมูลจากน้อย 6 Records
ตอบ int day ;

int month;
int year;
}datee;
struct customer
char name [20];
char lastname[20];
char addr[50] ;
char sex[10] ;
int age;

5. ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวชนิด Array กับ ตัวแปร Pointer ในสภาพของการกำหนดที่อยู่ของข้อมูล
ตอบ ความแตกต่างระหว่างตัวแปร Array และ Pointer คือตัวแปรArrayชุดที่ใช้เก็บตัวแปรชนิดเดียวกันไว้ด้วยกัน เช่น เก็บ ข้อมูล char ไว้กับ char เก็บ int ไว้กับ int ไม่สามารถเก็บข้อมูลต่างชนิดกันได้ เช่น char กับ int เรียก array อีกอย่างว่าหน่วยความจำแบ่งเป็นช่อง การกำหนดสมาชิกชิกของ array จะเขียนภายในเครื่องหมาย [ ]แต่ ตัวแปรพอยเตอร์จะเก็บเฉพาะค่าตำแหน่ง Address ตัวแปรเท่านั้นและดัชนีที่ เก็บค่าตำแหน่งแอดเดรสของหน่วยความจำ ซึ่งตัวแปรพอยเตอร์นั้น จะมีเครื่องหมายดอกจันทร์ (*) นำหน้าเสมอ


DTS : 03-14-07-52