วันอาทิตย์ที่ 30 สิงหาคม พ.ศ. 2552

DTS 07 25/08/09

เรื่อง TREE
ทรีมีความสัมพันธ์ระหว่าง โหนดจะมีความลดหลั่นกันเป็นลำดับชั้น ได้มีการนำรูปแบบทรีไปประยุกต์ในการใช้งานต่างๆ หรือ การมีสายบังคับบัญชา โหนดแต่ละโหนดจะต้องประกอบไปด้วยโหนดแม่

โหนดที่ต่ำกว่าโหนดแม่จะเรียกว่าโหนดลูก

โหนดที่สูงสุดและไม่มีโหนดแม่จะเรียกว่า โหนดราก

โหนดที่มีโหนดแม่เป็นโหนดเดียวกันเรียกว่า โหนดพี่น้อง

โหนดที่ไม่มีโหนดลูฏจะเรียกว่า โหนดใบ

เส้นเชื่อมแสดงความสัมพันธ์ระหว่างโหนดสองโหนดเรียกว่า กิ่ง

นิยามของทรี
1. นิยามทรีด้วยนิยามของกราฟ คือ กราฟที่ต่อเนื่องโดยไม่มีวงจรปิด ในโครงสร้าง
การเขียนรูปแบบทรีเขียนได้ 4 แบบ
1) แบบที่มีรากอยู่ด้านบน
2) แบบที่มีรากอยู่ด้านล่าง
3) แบบที่มีรากอยู่ด้านซ้าย
4) แบบที่มีรากอยู่ด้านขวา
2. นิยามทรีด้วยรูปแบบรีเคอร์ซีฟหรือการเวียนเกิด คือ ทรีที่ประกอบไปด้วยสมาชิกที่เรียกว่าโหนด โดยที่ถ้าว่าง ไม่มีโหนดใดๆ จะเรียกว่า Null Tree ถ้ามีโหนดหนึ่งเป็นโหนดราหอีกโหนดจะเป็นทรีย่อย

วันเสาร์ที่ 8 สิงหาคม พ.ศ. 2552

DTS 06-04/08/09

สแตก (Stack) เป็นโครงสร้างข้อมูลที่ข้อมูลแบบลิเนียร์ลิสต์ ที่มีคุณสมบัติที่ว่า การเพิ่มหรือลบข้อมูลในสแตก จะกระทำที่ ปลายข้างเดียวกัน ซึ่งเรียกว่า Top ของสแตก (TopOf Stack) และ ลักษณะที่สำคัญของสแตกคือ ข้อมูลที่ใส่หลังสุดจะถูกนำออกมา จากสแตกเป็นลำดับแรกสุด เรียกคุณสมบัตินี้ว่าLIFO (Last In First Out

การดำเนินงานพื้นฐานของสแตก
การทำงานต่าง ๆ ของสแตกจะกระทำที่ปลาย
ข้างหนึ่งของ สแตกเท่านั้น ดังนั้นจะต้องมีตัวชี้ตำแหน่งข้อมูลบนสุดของสแตกด้วย
การทำงานของสแตกจะประกอบด้วยกระบวนการ 3 กระบวน
การที่สำคัญ คือ
1.Push คือ การนำข้อมูลใส่ลงไปในสแตกเช่น สแตก s ต้องการใส่ข้อมูล i ในสแตก จะได้

2. Pop คือ การนำข้อมูลออกจากส่วนบนสุดของสแตกpush (s,i) คือ ใส่ข้อมูล i ลงไปที่ทอปของสแตก

3. Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก แต่ไม่ได้นำเอาข้อมูลนั้นออกจากสแตก

การดำเนินการเกี่ยวกับสแตก ได้แก่
1. Create Stack จัดสรรหน่วยความจำให้แก่ Head Nodeและส่งค่าตำแหน่งที่ชี้ไปยัง Head ของสแตก
กลับมา
2. Push Stack การเพิ่มข้อมูลลงไปในสแตก กรณีที่ไม่มีข้อมูลอยู่ในสแตก
3. Pop Stack การนำข้อมูลบนสุดออกจากสแตก
4. Stack Top เป็นการคัดลอกข้อมูลที่อยู่บนสุดของสแตก โดยไม่มีการลบข้อมูลออกจากสแตก
5.Empty Stack เป็นการตรวจสอบการว่างของสแตก เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลออกจากสแตกที่เรียกว่า Stack Underflow
6. Full Stack เป็นการตรวจสอบว่าสแตกเต็มหรือไม่ เพื่อไม่ให้เกิดความผิดพลาดในการนำข้อมูลเข้าสแตกที่เรียกว่า Stack Overflow
7. Stack Count เป็นการนับจำนวนสมาชิกในสแตก
8. Destroy Stackเป็นการลบข้อมูลทั้งหมดที่อยู่ในสแตก

วันอังคารที่ 4 สิงหาคม พ.ศ. 2552

DTS 05-28/07/09

โครงสร้างข้อมูลแบบลิงค์ลิสต์ โครงสร้างข้อมูลแบบลิงค์ลิสต์
จะแบ่งเป็น 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
หน้าที่ ทำลายลิสต์
ข้อมูลนำเข้า ลิสต์
ผลลัพธ์ ไม่มีลิสต์

การบ้าน
#include <iostream.h>
int main()
{
int index;
for(index=0;index<5;index++)
{
if(index<4)
{
if(index==3)
cout << "Index is 3" << "\n";
else
cout << "Index is less than 3" << "\n";
}
else
cout << "Index is greater than 3" << "\n"; }
return 0;
}

วันเสาร์ที่ 18 กรกฎาคม พ.ศ. 2552

DTS 04 14/07/09

โครงร้างข้อมูลแบบเซต
ในโครงสร้างข้อมูลแต่ละตัวไม่มีความสัมพันธ์กัน การดำเนินการจะมีแบบ A^B ตัวที่ซ้ำกัน , AUB รวมกัน(กระจัดกระจาย) , A-B หรือ B-A ตัวที่อยู่ในA แต่ไม่อยู่ในB และโครงสร้างของสตริง จะเป็นข้อความคล้ายๆกับ notepad เป็นโปรแกรมประเภทประมวลผลคำ เช่น ภาษา HTML หรือ การเปลี่ยนแท็ปของ Hi5ฯลฯ

โครงสร้างข้อมูลแบบสตริง
อะเรย์ของสตริงที่ยาวไม่เท่ากัน ทำได้เฉพาะเมื่อมีการกำหนดค่าเริ่มต้นเท่านั้น เช่น ฟังก์ชั่น puts()ใช้ในการเพิ่มสตริงออกทางจอภาพ โดยการผ่านค่าแอดเดรสของสตริงไปให้เท่านั้น อะเรย์ของสตริงที่ยาวเท่ากัน จะถือว่าเป็นอะเรย์ที่แท้จริง และสามารถกำหนดได้ทั้งเมื่อมีการให้ค่าเริ่มต้น เมื่อกำหนดเป็นตัวแปร โดยดำเนินการตามแบบกำหนดเป็นอะเรย์ 2 มิติ

การกำหนดตัวแปรจะมีความแตกต่างจากการกำหนดตัวแปรแบบความยาวไม่เท่ากัน คือในแบบความยาวไม่เท่ากันตัวท้ายของสตริงจะต้องเติม null charactor(\0)เพียงตัวเดียวแต่ใบแบบความยาวเท่ากัน จะเติม null charactor(\0) ให้ครบทุกช่อง

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

DTS 03 30/06/52

อาร์เรย์ เป็นแบบหนึ่งของโครงสร้างที่เรียกว่า Linear List ซึ่งมีจำนวนรายการ ( Element) จำกัด และข้อมูลที่เก็บอยู่ในอาร์เรย์แต่ละช่องจะต้องเป็นข้อมูลชนิดเดียวกัน อยู่ภายใต้ตัวแปรชื่อเดียวกัน โดยขนาดของแต่ละช่องต้องเท่ากันหมด การอ้างถึงข้อมูลในแต่ละช่องของของอาร์เรย์ ต้องอาศัยตัวห้อย Subscript เช่น กำหนดให้ Array A มีขนาด 100 รายการ A[5] จะหมายถึง ค่าของอาร์เรย์ตำแหน่งที่ 5 ในอาร์เรย์นั้น ซึ่ง Subscript ก็คือ เลข 5 จำนวน Subscript ที่ต้องการใช้เวลาเรียกใช้ค่าใน Array เรียกว่า มิติ ไดเมนชั่น ( Dimention) ของ Array นั้น

การสร้าง Array ขึ้นมาใช้งานนั้น ต้องคำนึงถึง
1. ชื่อของ Array
2. ขนาดของ Array แต่ละช่อง และมิติของ Array
3. ค่าสูงสุด ( Upper Bound) และค่าต่ำสุด (Lower Bound) ในแต่ละมิติ

ARRAY 1 มิติ คือ Array ที่มีลักษณะเป็นตารางแถวเดียว Array 1 มิติ จะมีลักษณะโดยทั่วไปดังนี้
A(L:U)
A: ชื่อของArray
L: ค่าต่ำสุด (Lower Bound )
U: ค่าสูงสุด (Upper Bound )

หมายเหตุ ในภาษาซี ช่องแรกของอาร์เรย์จะเริ่มจาก 0


ค่า subscript ที่ใช้อ้างอิงถึงสมาชิก จะต้องมีค่ามากกว่า หรือเท่ากับขอบเขตล่าง และน้อยกว่าหรือเท่ากับขอบเขตบน
lower bound ≤ subscript ≤ upper bound
ขนาดของ index แต่ละตัว ของ Array หาได้จาก
ขนาดของ subscript = upper bound – lower bound + 1

อาร์เรย์ 2 มิติ
อาร์เรย์ 2 มิติ คือ อาร์เรย์ที่มีลักษณะที่เป็นตารางที่มี 2 ด้าน คือ ทางด้านแนวนอน ( ROW) และแนวตั้ง ( COLUMN) มีจำนวนช่องเท่ากับ จำนวนช่องทางด้านแนวนอน ( ROW) คูณกับจำนวนช่องทางด้านแนวตั้ง ( COLUMN) การอ้างถึง Array 2 มิติ ต้องใช้ Subscript 2 ตัว คือ ROW และ COLUMN การกำหนดอาร์เรย์ 2 มิติทำได้โดย

วันเสาร์ที่ 27 มิถุนายน พ.ศ. 2552

สิ่งที่ฉันปรารถนา

นางสาว กนกวรรณ เหลืองเลิศวัฒน
VDO แนะนำตัว

RECORD DTS 02 23/06/2552

การเรียนครั้งนี้ได้รู้ถึงโครงสร้างของข้อมูลทั้งกายภาพและทางตรรกะ และแต่ในโครงสร้างแต่ละตัวนั้นมีความสำคัญในการใช้ และมีการแก้ปัญหาอย่างมีระบบ มีลำดับขั้นตอนที่แสดงถึงผลลัพธ์ โดยต้องกระชับและรัดกุม
ประเภทตามลักษณะข้อมูล
1. ข้อมูลเบื้องต้น Primitive Data Types
ได้แก่ จำนวนเต็ม จำนวนจริง และตัวอักขระ
2. ข้อมูลโครงสร้าง Structured Data Types
ได้แ่ก่ แถวลำดับ ระเบียนข้อมูล และแฟ้มข้อมูล เป็นต้น
2. โครงสร้างข้อมูลทางตรรกะ
-เป็นโครงสร้างข้อมูลที่เกิดจากจินตนาการของผู้ใช้เพื่อใช้ในการแก้ปัญหาในโปรแกรมที่สร้างขึ้น
แบ่งเป็น 2 ประเภท
1. โครงสร้างข้อมูลเชิงเส้น Linear Data Structures
ความสัมพันธ์ของข้อมูลจะเรียงต่อเนื่องกัน เช่น ลิสต์ สแตก คิว สตริง
2. โครงสร้างข้อมูลทางตรรกะ Non-Linear Data Structures
ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว
ได้แก่ ทรี และกราฟ



การบ้าน

#include <stdio.h>
#include <string.h>

void main(){
struct addr{
char name[30];
char surname[30];
char soi[20];
char street[40];
char city[20];
char language[20];
char bank[10];
long int post;
};
struct addr kanokwan;
strcpy(kanokwan.name,"Kanokwan");
strcpy(kanokwan.surname,"Luanglertwatana");
strcpy(kanokwan.street,"Wutthakat");
strcpy(kanokwan.city,"Bangkok");
strcpy(kanokwan.bank,"Kbank");
strcpy(kanokwan.soi,"Chaiwut");
strcpy(kanokwan.language,"Thai");
kanokwan.post=10150;

printf("******profile******\n\n");
printf(" Name:%s\n\n",kanokwan.name);
printf(" Surname:%s\n\n",kanokwan.surname);
printf(" Bank:%s\n\n",kanokwan.bank);
printf(" street : %s\n\n",kanokwan.street);
printf(" city : %s\n\n",kanokwan.city);
printf(" soi : %s\n\n",kanokwan.soi);
printf(" post :%d\n\n",kanokwan.post);
printf(" language :%s\n\n",kanokwan.language);
}

วันอังคารที่ 23 มิถุนายน พ.ศ. 2552

ประวัติ


นางสาวกนกวรรณ เหลืองเลิศวัฒน

ชื่อเล่น จู

รหัสนักศึกษา 50132792062


Miss. Kanokwan Luanglertwatana

หลักสูตร บริหารธุรกิจ(คอมพิวเตอร์ธุรกิจ) คณะวิทยาการจัดการ

มหาวิทยาลัยราชภัฎสวนดุสิต


E-mail :
U50132792062@gmail.com

Tel. 0876966608