Park-Kachen

20 กรกฎาคม 2552

DTS04-15-07-2552

สรุปสิ่งที่ได้จากการเรียน Set & String และ Linked lists


การสร้างอะเรย์ของสตริง สามารถทำได้ทั้งแบบที่กำหนดตัวแปรและแบบที่ให้ค่าเริ่มต้น จะสร้างเมื่อสตริงมีจำนวนมาก เพื่อช่วยให้เขียนโปรแกรมได้สะดวกขึ้น




ARAY ของสตริงที่ยาวไม่เท่ากัน ทำได้เฉพาะเมื่อมีการกำหนดค่าเริ่มต้นเท่านั้น




ตัวอย่าง code




ผลการรันโปรแกรม
Data structure
English
Programming
Photoshop
Systems Analysis


ARAY ของสตริงที่ยาวเท่ากัน ถือว่าเป็นอะเรย์ที่แท้จริง สามารถกำหนดได้ทั้งเมื่อกำหนดตัวแปรและเมื่อมีการให้ค่าเริ่มต้น โดยดำเนินการแบบกำหนดอะเรย์ 2 มิติ

ตัวอย่าง code ผลการรันโปรแกรม
Olive
Mango
Apple

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



โหนด (Node)

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








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






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








การเพิ่มและลบข้อมูลใน Linked list

การเพิ่มข้อมูลที่ต้น list














จากรูป จะเพิ่ม NODE(tmp) ลงใน linked list โดยมีขั้นตอนคือ
tmp = new ListNode();
tmp.element = 12;
tmp.next = current.next;

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


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





















จากรูปมีขั้นตอนดังนี้
tmp = new ListNode();
tmp.element = 16;
tmp.next = current.next;
current.next = tmp

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







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

tmp.next = tmp.next.next





posted by Park-Kachen at 05:33

0 Comments:

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

<< Home