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

DTS 5

1.Circular Linked List เป็นลิงค์ลิสต์ที่สมาชิกตัวสุดท้ายมีตัวชี้(list)ชี้ไปที่สมาชิกตัวแรกของลิสต์ จะมีการทำงานไปในทิศทางเดียว คือเป็นแบบวงกลม
2.Double Linked List เป็นลิงค์ลิสต์ที่มีทิศทางการทำงานแบบ 2 ทิศทาง ส่วนข้อมูลจะมีตัวชี้ไปที่ข้อมูลก่อนหน้า และตัวชี้ข้อมูลถัดไป
3.แสตก(Stack)เป็นโครงสร้างข้อมูลที่ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มหรือลบข้อมูลในแสตกจะกระทำที่ปลายข้างเดียวกัน ซึ่งเรียกว่า Top ของแสตก
4.การทำงานของแสตกมี 3 กระบวนการที่สำคัญ คือ
-Puch คือ การนำข้อมูลใส่ลงไปในแสตก
-Pop คือ การนำข้อมูลออกจากส่วนบนสุดของแสตก
-Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของแสตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากแสตก

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

DTS 4

1.ฟังก์ชัน gets()เป็นฟังก์ชันที่อ่านค่าจากแป้นพิมพ์มาเก็บไว้ในหน่วยความจำ
2.ฟังก์ชัน puts()ใช้ในการพิมพ์สตริงออกทางจอภาพ โดยการผ่านค่าแอดเดรสของสตริงไปให้เท่านั้น
3.อะเรย์ของสตริงที่ยาวเท่ากัน
-อะเรย์ในลักษณะนี้จะถือว่าเป็นอะเรย์ที่แท้จริงและสามารถกำหนดได้ทั้งเมื่อมีการให้ค่าเริ่มต้น และกำหนดเป็นตัวแปร โดยดำเนินการตามแบบการกำหนดอะเรย์ 2 มิติ
4.ลิงค์ลิส(Linked List)
-เป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของอิลิเมนต์ต่างๆ โดยมีพอยเตอร์เป็นตัวเชื่อมต่อ
5.แต่ละอิลิเมนท์ เรียกว่าโนด(Node)ซึ่งในแต่ละโนดจะประกอบไปด้วย 2 ส่วน คือ Data และ Link Field
6.โครงสร้างข้อมูลแบบลิงค์ลิส แบ่งเป็น 2 ส่วนคือ
-Head Structure
-Data Node Structure

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

DTS 3

1.Pointer เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งที่อยู่ (Address) ของตัวแปรที่อยู่ในหน่วยความจำ
2.เครื่องหมาย * มีการใช้งาน 2 ลักษณะ คือ
-ใช้ในการประกาศ Parameter ว่าเป็นตัวแปรแบบพอยน์เตอร์
-ใช้เป็น dereferencing operator จะใช้เมื่อต้องการนำคำที่อยู่ในตำแหน่งที่ตัวแปรพอยน์เตอร์นั้นชี้อยู่
3.โครงสร้างข้อมูลแบบเซ็ท เป็นโครงสร้างข้อมูลที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กัน
4.โครงสร้างข้อมูลแบบสตริง เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร ตัวเลขหรือเครื่องหมายเรียงติดต่อกันไป รวมทั้งช่องว่าง
5.สตริงก็คืออะเรย์ของอักขระที่ปิดท้ายด้วย null character (\0)และมีฟังก์ชันพิเศษสำหรับทำงานกับสตริงโดยเฉพาะ

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

คำถามท้ายบทที่ 2

1.ให้นักศึกษากำหนดค่าของ Array 1 มิติ และ Array 2 มิติ
- Array 1 มิติ in num[5] = {1,2,3,4,5}
- Array 2 มิติ in a[2][3] = {{1,2,3},{4,5,6}}
2.ให้นักศึกษาหาค่าของ A[2], A[6] จากค่า A={2,8,16,24,9,7,3,8}
- A[2], A[6] = 16,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
#include "stdio.h"
struct time
{
int day;
int month;
int year;
};
struct Regis
{
char name[30];
char lastname[30];
char id[15];
struct time date;
}details;
void input_data()
{
printf("Register\n");
printf("Name : ");
scanf("%s",&details.name);
printf("Lastname : ");
scanf("%s",&details.lastname);
printf("id = ");
scanf("%s",&details.id);
printf("Day-Month-Year : ");
scanf("%d-%d-%d",&details.date.day,&details.date.month,&details.date.year);
}
void show_data()
{
printf("\nInformation Regis\n");
printf("Your Name : %s\n",details.name);
printf("Your Lastname : %s\n",details.lastname);
printf("Your ID : %s\n",details.id);
printf("Date : %d-%d-%d",details.date.day,details.date.month,details.date.year);
}
main()
{
input_data();
show_data();
return (0);
}
5.ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวแปรชนิด Array กับตัวแปร Pointer ในสภาพของการกำหนดที่อยู่ของข้อมูล
- การกำหนด Array คือ การกำหนดชื่ออะเรย์ พร้อม subscript ซึ่งเป็นตัวกำหนดขอบเขตของอะเรย์
- ส่วน Pointer คือ ตัวแปรที่ทำหน้าที่เก็บตำแหน่งที่อยู่ (Address) ของตัวแปรที่อยู่ในหน่วยความจำ