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

DTS 04-15/07/52

สรุป

Linked List
เป็นการจัดเก็บชุดข้อมูลเชื่อมโยงต่อเนื่องกันไปตามลำดับ ซึ่งอาจอยู่ในลักษณะแบบเชิงเส้นตรง (linear) หรือ ไม่เป็นเส้นตรง (nonlinear) ก็ได้ ซึ่งในลิสต์จะประกอบไปด้วยข้อมูลที่เรียกว่าโหนด (node) ในหนึ่งโหนดจะประกอบด้วยส่วนของข้อมูลที่ต้องการจัดเก็บ เรียกว่าส่วน Info และส่วนที่เป็นพอยน์เตอร์ที่ชี้ไปยังโหนดถัดไป (Link) หรือชี้ไปยังโหนดอื่นๆที่อยู่ในลิสต์ หากไม่มีโหนดที่อยู่ถัดไป ส่วนที่เป็นพอยน์เตอร์หรือ Link จะเก็บค่า NULL หรือ NILL ใช้สัญลักษณ์ ^

โหนด (Node)







โครงสร้างแบบ Linked list แบ่งได้หลายแบบตามวิธีการชี้ไปยังโหนดต่างๆ เช่น Singly Linked list , Doubly Linked list , Multi-Linked list






การสร้าง Linked listวิธีสร้าง Linked list คือการนำข้อมูลที่จะจัดเก็บเข้า Linked list เพิ่มตรงโหนดตำแหน่งสุดท้ายของลิสต์ ฉะนั้นจึงต้องมี External พอยน์เตอร์ที่คอยชี้โหนดสุดท้ายของลิสต์ ในที่นี้ใช้ L (Last) ตัวอย่างการสร้าง Linked list จากลิสต์ L = 21 , 5 เริ่มจากการให้ H ชี้ทิ่โหนดตำแหน่งแรก และ L ชี้ทิ่โหนดตำแหน่งสุดท้าย






เพิ่มข้อมูล 5 เข้าไปใน list , L ชี้ไปยังโหนดที่เก็บข้อมูล 5







การเพิ่มข้อมูลโดยแทรกลงในลิสต์การเพิ่มข้อมูลจะทำการแทรกโหนด NEW หลังโหนด P ตัวอย่าง ทำการเพิ่มข้อมูลโหนด 16 ระหว่างโหนด 21 และ 5



















การลบข้อมูลใน Linked listการลบข้อมูลที่ต้น list เนื่องจากขั้นตอนของการลบข้อมูลที่ header นั้นจะมีปัญหาที่ยุ่งยากกว่าเมื่อ design ด้วย oop(java) เราสามารถที่จะแก้ปัญหานี้ได้โดยการใส่ header node ที่ว่าง ๆ ไว้ข้างหน้าของ linked list เพื่อที่จะทำหน้าที่เป็นชี้ว่าเป็นหัวโหนดโดยที่ไม่ต้องมี pointer คอยชี้ที่ header และเมื่อเราต้องการที่จะเปลี่ยนแปลงข้อมูลใด ๆ บนหัวสามารถที่จะทำได้โดยการแทรก node เข้าไปดังตัวอย่างของการแทรกข้อมูลข้างล่างการแทรกข้อมูลลงในโหนดที่ต้องการ











จากรูปมีขั้นตอนดังนี้

tmp.next = tmp.next.next;


ฟังก์ชัน iostream.h กับ stdio.h

เป็นการกำหนดค่าให้กับตัวแปรแล้วมีการนำค่าของตัวแปรมาบวกกันตามที่กำหนดไว้

iostream.h

#include
int main()
{ float a = 15.9,b = 11.5;
float *p,*q;
p = &a;
q = &b;
cout << "*p = " << *p << q =" ">
*p = *p + 5.5;
*q = *q + 10.5;
cout << " a = " <<>
cout << " b = " <<>
return 0;
}

stdio.h

#include
int main()
{
float a = 15.9,b = 11.5;
float *p,*q;
p = &a;
q = &b;
printf(">printf("*q = %f \n",*q);
*p = *p + 5.5;
*q = *q + 10.5;
printf(" a = %f \n",a);
printf(" b = %f\n",b);
return 0;
}








ไม่มีความคิดเห็น:

แสดงความคิดเห็น