บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
อัลกอริทึม ITS101 2/2011.
Advertisements

Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Arrays.
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
ตัวแปรประเภทตัวชี้ (Pointer)
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
การใช้ Microsoft Word 2007 / 2010 เพื่อการจัดการงานเอกสารเชิงวิชาการ
การทำงานแบบเลือกทำ (Selection)
LAB 1 ให้นักศึกษาเขียน Flowchart โดยใช้โปรแกรม Microsoft Word วาดรูป Flowchart ส่ง Flowchart ที่วาดเสร็จแล้วในชั่วโมง และ print ใส่กระดาษ ส่งในครั้งหน้า.
โครงสร้างของโหนด Successor = Node ที่อยู่ถัดไปจาก Node ที่ใช้งานอยู่
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
[][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null]
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
BC320 Introduction to Computer Programming
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
Register Allocation and Graph Coloring
โครงสร้างการควบคุมการทำงานของโปรแกรม Program control structures
Functional programming part II
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
Arrays and Pointers.
ทบทวน Array.
รับและแสดงผลข้อมูล.
บทที่ 1. พื้นฐานความรู้ทั่วไป
การสร้าง Web Page จาก Wizard
การกำหนด Section การใส่ Section Break ก็คือการกำหนดให้เอกสารแบ่งออกเป็นแต่ละ Section ดังนั้น คุณจึงสามารถกำหนดรูปแบบการจัดวางข้อความในแต่ละ Section ให้แตกต่างกัน.
Arrays.
Arrays.
Surachai Wachirahatthapong
Seree Chinodom Recordset Object Seree Chinodom Computer Science, BUU.
SCC : Suthida Chaichomchuen
การเขียนผังงานแบบโครงสร้าง
Searching.
ลิ้งค์ลิสต์วงกลม วิธีการที่ทำให้สามารถวิ่งจาก โหนดหนึ่งจะไม่สามารถชี้กลับไป ยังโหนดอื่น ๆ ได้ในลิ้งค์ลิสต์ โดยให้ตัวชี้ของโหนดสุดท้ายซึ่ง เดิมเป็นค่า NULL.
บทที่ 7 คำสั่งสำหรับเขียนโปรแกรม
บทที่ 4 อัลกอริทึมแบบเรียงลำดับ (Sequential Algorithm)
โครงสร้างข้อมูลแบบคิว
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
โครงสร้างข้อมูลคืออะไร ?
Linked List (ลิงค์ลิสต์)
Lecture 4 เรคอร์ด.
Week 12 Engineering Problem 2
บทที่ 5 Link List Link List.
Week 12 Engineering Problem 2
Linked List List is group of nodes that consists of data and link.
บทที่ 3 การทำงานกับฟอร์ม (Form)
บทที่ 4 การทำงานกับรายงาน (Report)
ลิงค์ลิสต์ (Linked List)
การออกแบบโครงสร้าง (Structured Design)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
การเขียนโปรแกรมเบื้องต้น
กองซ้อน ยอดกองซ้อน (stack).
โครงสร้างข้อมูลแบบกองซ้อน (Stack)
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
โครงสร้างข้อมูลแบบรายการโยง (Link List)
บทที่ 9 พอยเตอร์. สื่อชุดนี้เป็นลิขสิทธิ์ของสำนักพิมพ์วังอักษรใช้เพื่อ การศึกษาเท่านั้น พอยเตอร์ (Pointer) พอยเตอร์คือต้นฉบับของชนิดข้อมูล เป็นชนิด ข้อมูลที่สร้างจากข้อมูลมาตรฐานชนิดหนึ่ง.
รายการโยง (linked lists) หอยทอด 30 ข้าวผัด 30 ไก่ย่าง 50 เนื้อทอด 30
โครงสร้างข้อมูล Queues
โครงสร้างข้อมูลแบบลิงก์ลิสต์
หลักการเขียนโปรแกรม ( )
โครงสร้าง ภาษาซี.
Data Structure and Algorithms
การกระทำทางคณิตศาสตร์
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การรับและแสดงผลข้อมูล (Input/Output)
โครงสร้างข้อมูลแบบ สแตก (stack)
Int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body.
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
หลักการทั่วไปเกี่ยวกับการเขียนโปรแกรม
ใบสำเนางานนำเสนอ:

บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์ การจัดเก็บที่มีรูปแบบเรียงตามลำดับ (Sequential) เปลี่ยนมาใช้รูปแบบไม่เรียงตามลำดับและสมาชิกทุกตัวจะถูกเชื่อม(Link)ต่อเข้าด้วยกันเมื่อมีการลบค่าสมาชิกตัวใดออกหรือแทรกค่าสมาชิกใหม่เข้ามา ก็จะทำให้สมาชิกอื่น ๆ มีการขยับตำแหน่งตามไปด้วย

รูปแบบโครงสร้างข้อมูลลิ้งค์ลิสต์ Info Next Info Next Info Next Info Next L1 L2 ... Ln Null First Node1 Node2 Node3 Node4

โครงสร้างของโหนด Successor = Node ที่อยู่ถัดไปจาก Node ที่ใช้งานอยู่ โครงสร้างของโหนดประกอบด้วย Nodeประกอบด้วยinfo ใช้เก็บ integer และ Next ชื่อพอยเตอร์สำหรับชี้ไปยังโหนดถัดไป Successor = Node ที่อยู่ถัดไปจาก Node ที่ใช้งานอยู่ Presecessor = Node ที่อยู่ก่อนหน้าจาก Node ที่กำลังใช้งานอยู่

การแทรกโหนดไว้ในลิ้งค์ลิสต์ 1. อัลกอริทึมการแทรกโหนดใหม่ลงในลิ้งค์ลิสต์ (การแทรกโหนดระหว่างกลาง)

ฟังก์ชันการตรวจสอบลิ้งค์ลิสต์ คำสั่งที่ใช้ตรวจสอบว่าโหนดนี้เท่ากับ 2หรือไม่ถ้า ไม่ใช่ให้ทำการตรวจสอบต่อ แต่ถ้าใช่ให้ออกจากคำสั่ง p=First; do while(p-->info!=2){ p=p-->First-->Next; }

ลิ้งค์ลิสต์เดิม P | ? First ต้องการจะแทรกโหนดใหม่หลังโหนดที่มี | ? First 2 4 Null

ต้องการจะแทรกโหนดใหม่ระหว่างโหนดที่ 2 กับ 3 มีขั้นตอนดั้งนี้ 1.สร้างโหนดใหม่ที่ชื่อว่าโดยใช้พอยเตอร์ที่ชื่อว่า "N" N 2.กำหนดค่าให้กับโหนดใหม่ เช่น ให้ info = 3 คำสั่ง N info=3; ผลลัพธ์ P Null 3 Null

3.กำหนดให้พอยเตอร์ของโหนดใหม่ชี้ไปยัง Node ถัดไป คำสั่ง N Next=p next; ผลลัพธ์ N 4.ให้พอยเตอร์ของ Node ก่อนหน้าชี้ไปยังโหนด Node ใหม่ คำสั่ง p next=n; ผลลัพธ์ p 3 address of Node 4 2 N

1 address of Node 2 2 p Next 3 address of Node 4 4 Null ผลลัพธ์ที่ได้ในโหนด First 1 address of Node 2 2 p Next 3 address of Node 4 4 Null

ลิ้งค์ลิสต์เดิม P ? | First ? | First 2 4 Null

2. อัลกอริทึมการแทรกโหนดใหม่ลงในลิ้งค์ลิสต์ (การแทรกโหนดก่อนหน้า) มีขั้นตอนดังนี้ 1.สร้างโหนดใหม่ที่ชื่อว่าโดยใช้พอยเตอร์ที่ชื่อว่า "N" N 2.กำหนดค่าให้กับโหนดใหม่ เช่น ให้ info = 3 คำสั่ง N info=3; ผลลัพธ์ P Null 3 Null

ผลลัพธ์ N ผลลัพธ์ที่ได้ในโหนด First N 3 address of Node 1 4 2 1 5 3.กำหนดใหพอยเตอร์ของโหนดใหม่ชี้ไปยัง Node ถัดไป (Node 1 หรือโหนดแรก) คำสั่ง N Next=first; ผลลัพธ์ N ผลลัพธ์ที่ได้ในโหนด First N 3 address of Node 1 4 2 1 5

4.ให้พอยเตอร์ของ Node ก่อนหน้าชี้ไปยังโหนด Node ใหม่ First=n; First n First 5 Null 1 address of Node 2 2 p Next 4 Null 5

ลิ้งค์ลิสต์เดิม P | ? First | ? First 1 2 3 Null

3. อัลกอริทึมการแทรกโหนดใหม่ลงในลิ้งค์ลิสต์ (การแทรกโหนดหลังโหนดสุดท้าย) มีขั้นตอนดังนี้ คำสั่งในการตรวจสอบโหนดว่าเป็นโหนดสุดท้าย แล้วยังถ้าเป็นโหนดสุดท้ายที่ Nextจะเป็นnull p=First; do while(p-->info!=null){ p=p-->Next; }

ต้องการจะแทรกโหนดใหม่ต่อจากโหนดสุดท้าย มีขั้นตอนดั้งนี้ ต้องการจะแทรกโหนดใหม่ต่อจากโหนดสุดท้าย มีขั้นตอนดั้งนี้ 1.สร้างโหนดใหม่ที่ชื่อว่าโดยใช้พอยเตอร์ที่ชื่อว่า "N" N 2.กำหนดค่าให้กับโหนดใหม่ เช่น ให้ info = 4 คำสั่ง N info=4; ผลลัพธ์ P Null 4 Null

3.กำหนดใหพอยเตอร์ของโหนดใหม่ชี้ไปยัง Nodeสุดท้าย(p) คำสั่ง p next=n; ผลลัพธ์ First n 1 address of Node 2 p 2 p Next 3 4 Null