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

สรุปการเรียนเรื่อง Stack

-ได้ทราบว่าสแตก เป็นโครงสร้างข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มหรือลบข้อมูลในแสตก จะทำที่ปลายข้างเดียวกัน ที่เขาเรียกว่า Top ของแสตก
-ได้รู้ถึงลักษณะที่สำคัญของแสตก คือข้อมูลที่ใส่หลังสุดจะถูกนำออกมาจาก สแตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่า LIFO (Last ln First Out)
-ได้ทราบว่าการดำเนินงานพื้นฐานของสแตก ว่าการทำงานต่าง ๆของสแตกจะกระทำที่ปลายข้างหนึ่งของสแตกเท่านั้น
-ได้รู้ว่าการทำงานของสแตกมี 3 กระบวนการคือ
1. Push คือการนำข้อมูลใส่ลงในสแตก
2. Pop คือการนำข้อมูลออกจากส่วนบนสุดของสแตก
3. Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตก
-ได้ทราบถึงการแทนที่ข้อมูลของสแตก ว่าทำได้ 2วิธีนี้คือ
1. การแทนที่ข้อมูลของสแตกแบบลิงค์ลิสต์
2. การแทนที่ข้อมูลของสแตกแบบอะเรย์
-ได้ทราบว่าการแทนที่ข้อมูลของแสตกแบบลิงค์ลิสต์จะประกอบไปด้วย 2 ส่วนคือ
1. Head Node จะประกอบไปด้วย 2 ส่วนคือ Top pointer และจำนวนสมาชิกในสแตก
2. Data Node จะประกอบไปด้วยข้อมูล และ pointer ที่ชี้ไปยังข้อมูลตัวถัดไป

DTS05-22-07-09

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

-จากการที่ผมได้เรียนเรื่อง linked list นี้ได้รู้ว่า linked list นั้นเป็นวิธีการเก็บข้อมูลอย่างต่อเนื่องของ Element ต่าง ๆโดยมี pointer เป็นตัวเชื่อมต่อ
-และได้ทราบว่าแต่ละ Element ก็คือสมาชิกในกลุ่ม เรียกว่า โหนดซึ่งในแต่ละโหนดนั้นจะประกอบด้วย 2ส่วนคือ 1. Data
2. Link Field
-ผมได้รู้ว่าโครงสร้างข้อมูลแบบ linked list จะแบ่งเป็น 2ส่วนด้วยกันคือ
1. Head Structure จะประกอบด้วย 3ส่วน ได้แก่
1.จำนวนโหนดในลิสต์ก็คือ Count
2.pointer ที่ชี้ไปยังโหนดที่เข้าถึง ก็คือ Pos
3.pointer ที่ชี้ไปยังโหนดข้อมูลแรกของลิสต์
2.Data Node Structure
-ข้อมูลในโหนดแรกของลิสต์จะเป็น Null
-ได้รู้ linked list แบบซับซ้อนว่าเป็นแบบนี้คือ
1. Circular Linked List เป็นลิงค์ลิสต์ที่สมาชิกตัวสุดท้ายมีตัวชี้ List ชี้ไปที่สมาชิกตัวแรกของlinked list จะมีการทำงานไปในทิศทางเดียวเท่านั้น ก็คือเป็นแบบวงกลม
2. Double Linked List เป็น linked list ที่มีทิศทางการทำงานแบบ 2 ทิศทาง ในlinked list แบบ 2 ทิศทาง ส่วนข้อมูลจะมีตัวชี้ไปที่ข้อมูลก่อนหน้า backward pointer และตัวชี้ข้อมูลถัดไป forward pointer

DTS 04-22-07-09

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

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

1.ให้นักศึกษากำหนดค่าของArray1มิติ และ Array2มิติ
arrray1มิติ int num[10]={2,4,6,8,10,12,14,16,18,20};
arrray2มิติint 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 date
{
int day,month,year;
};
struct Student_information
{
float id;
char name[40];
struct date birthday;
float score;
}std;
void input_data()
{
printf("Student Data\n");
printf("ID = ");
scanf("%f",&std.id);
printf("Name : ");
scanf("%s",&std.name);
printf("Date of birth : ");
scanf("%d",&std.birthday.day);
printf("month of birth : ");
scanf("%d",&std.birthday.month);
printf("Year of birht : ");
scanf("%d",&std.birthday.year);
printf("Enter your Score : ");
scanf("%f",&std.score);
}
void show_data()
{
printf("\nDisplay Data of student \n");
printf("ID : %.0f\n",std.id);
printf("Name : %s\n",std.nam
printf("birthday : %d-%d-%d\n",std.birthday.day,std.birthday.month,std.birthday.year);
printf("Scare : %.2f\n",std.score);
}
main()
{
input_data();
show_data();
}

5.ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวแปรชนิด Array กับตัวแปร Pointer ในสภาพของการกำหนดที่อยู่ของข้อมูล
การกำหนดที่อยู่ของ array จะเป็นการกำหนดแบบแยกประเภท เช่น integer, char, float แยกประเภทของข้อมูลว่าเป็น
ข้อมูลจำนวนเต็มบวก,ตัวเลขทศนิยม,ตัวอักษร
ส่วน pointerเป็นการสงค่าตัวแปรไปกลับระหว่างที่อยู่ของตัวแปรที่อยู่ในหน่วยความจำ

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

สรุปการเรียน Lecture2 เรื่อง Pointer

-ได้รู้ว่า pointer นั้นเป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งที่อยู่ ของตัวแปรในหน่วยความจำ
-ได้ทราบถึงเครื่องหมายที่ใช้ทำงานกับตัวแปร pointer
1.เครื่องหมาย & เป็นเครื่องหมายที่ใช้เครื่องเมื่อต้องการให้เอาค่าตำแหน่งที่อยู่ของตัวแปรที่เก็บไว้ในหน่วยความจำออกมาใช้
2.เครื่องหมาย * นั้นมีการใช้งาน 2 ลักษณะ คือ
2.1 ใช้ในการประกาศ parameter ว่าเป็นตัวแปรแบบ pointer
2.2 ใช้เป็น การอ้างอิง จะใช้เมื่อต้องการนำคาที่อยู่ในตำแหน่งที่ตัวแปร pointerนั้นชี้อยู่ออกมาแสดง
-ได้รู้ว่าการใช้ตัวแปร pointer and array ตัวแปร pointer จะใช้อ้างถึงค่าที่เก็บไว้ในตัวแปรชุดได้เช่นนี้

char str[80], *pl;
pl = str;


DTS 03- 01-07-09