Int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Bansomdej Chaopraya Rajabhat University
Advertisements

Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
โครงสร้างของโหนด Successor = Node ที่อยู่ถัดไปจาก Node ที่ใช้งานอยู่
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
[][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null]
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
ครั้งที่ 12 การค้นหาข้อมูล (Searching)
คำสั่ง while และ คำสั่ง do..while
Control Statement for while do-while.
สายอักขระและ การประมวลผลสายอักขระ (String and String manipulation)
Chapter VII : การแก้ไขข้อมูล
Functional programming part II
ฟังก์ชัน (Function).
เฉลย Lab 10 Loop.
1. จงหาผลลัพธ์จากโปรแกรมต่อไปนี้
Data structure & Algorithms
การใช้ PHP ติดต่อกับ Text File
บทที่ 5 การทำงานแบบวนซ้ำ
Linked-List (รายการโยง)
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Seree Chinodom Recordset Object Seree Chinodom Computer Science, BUU.
การควบคุมทิศทางการทำงานของโปรแกรม
การเขียนผังงานแบบโครงสร้าง
Searching.
คำสั่งควบคุมเงื่อนไข และการทำงานเป็นรอบ
Javascripts.
ลิ้งค์ลิสต์วงกลม วิธีการที่ทำให้สามารถวิ่งจาก โหนดหนึ่งจะไม่สามารถชี้กลับไป ยังโหนดอื่น ๆ ได้ในลิ้งค์ลิสต์ โดยให้ตัวชี้ของโหนดสุดท้ายซึ่ง เดิมเป็นค่า NULL.
คำสั่งควบคุมการทำงาน
Chapter 7 Iteration Statement
โครงสร้างข้อมูลแบบคิว
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
บทที่ 5 ฟังก์ชันกับอาร์เรย์ Function & Array
List ADTs By Pantharee S..
Linked List (ลิงค์ลิสต์)
บทที่ 5 Link List Link List.
การประมวลผลสายอักขระ
Control Statements.
Linked List List is group of nodes that consists of data and link.
ลิงค์ลิสต์ (Linked List)
การใช้ PHP ติดต่อกับ Text File
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
คำสั่งทำซ้ำ for คำสั่ง for เป็นคำสั่งทำซ้ำในลักษณะ Definite loop คือทราบจำนวนรอบที่แน่นอนในการทำงาน ซึ่งจะใช้ตัวแปร 1 ตัวในการนับจำนวนรอบว่าครบตามกำหนดหรือไม่
โครงสร้างข้อมูลแบบรายการโยง (Link List)
Java collection framework
รายการโยง (linked lists) หอยทอด 30 ข้าวผัด 30 ไก่ย่าง 50 เนื้อทอด 30
โครงสร้างข้อมูลแบบลิงก์ลิสต์
1 Functions กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
C-Programming บทที่ 8 การทำซ้ำ C Programming.
การทำซ้ำ Pisit Nakjai.
การทำงานแบบวนซ้ำ (Iteration).
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
Week 5 While and Do-While loop (Control Structure 2)
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
Linked List (2) Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
Linked List ( ต่อ ) Lecturer : Kritawan Siriboon, Room no. 913 Text : Data Structures & Algorithm Analysis in C, C++,… Mark Allen Weiss, Addison Wesley.
Queue Lecturer : Kritawan Siriboon, Room no. 913
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List.
Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List.
int isEmpty ( node **ptr_head) ;
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List Lecturer : Kritawan Siriboon, Room no. 913
Queue [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List (ต่อ) Lecturer : Kritawan Siriboon, Room no. 913
4 โครงสร้างข้อมูลแบบลิงค์ลิสต์ (LINKED LIST).
ใบสำเนางานนำเสนอ:

int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body of function ตรวจสอบว่าลิสต์ว่างหรือไม่ (*ptr_head == NULL) ถ้าใช่ return 1, ถ้าไม่ใช่ return 0 1

isEmpty : ทุกกรณี เขียนเหมือนกัน int isEmpty ( node **ptr_head ) { if ( *ptr_head == NULL ) { // ถ้าลิสต์ว่าง return 1 ; else return 0 ; } 2

int countNode ( node ** ptr_head ) ; parameter ชื่อของตัวแปรลิสต์ที่จะนับจำนวน โหนด return value จำนวนโหนดในลิงค์ลิสต์ body of function นับจำนวนโหนดในลิงค์ลิสต์ ต้องอาศัยการ “ ท่อง ” ไปในลิงค์ ลิสต์ทีละโหนดและนับจำนวน 3

countNode : Singly-linked list int countNode ( node **ptr_head ) { int count = 0 ; node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง ( มี ข้อมูล ) t = *ptr_head ; count = 1 ; // นับไป 1 โหนด while ( t->next != NULL ) { // ถ้ายังไม่ใช่ โหนดสุดท้าย t = t->next ; // ท่องไปโหนด ถัดไป count++ ; // นับเพิ่มอีก 1 โหนด } } return count ; } 4

countNode : Singly- circularly-linked list int countNode ( node **ptr_head ) { int count = 0 ; node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง ( มี ข้อมูล ) t = *ptr_head ; count = 1 ; // นับไป 1 โหนด while ( t->next != *ptr_head ) { // ถ้ายัง ไม่ใช่โหนดสุดท้าย t = t->next ; // ท่องไปโหนด ถัดไป count++ ; // นับเพิ่มอีก 1 โหนด } } return count ; } 5

countNode : Doubly- linked list int countNode ( node **ptr_head ) { int count = 0 ; node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง ( มี ข้อมูล ) t = *ptr_head ; count = 1 ; // นับไป 1 โหนด while ( t->next != NULL ) { // ถ้ายังไม่ใช่ โหนดสุดท้าย t = t->next ; // ท่องไปโหนด ถัดไป count++ ; // นับเพิ่มอีก 1 โหนด } } return count ; } 6

countNode : Doubly- circularly-linked list int countNode ( node **ptr_head ) { int count = 0 ; node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง ( มี ข้อมูล ) t = *ptr_head ; count = 1 ; // นับไป 1 โหนด while ( t->next != *ptr_head ) { // ถ้ายัง ไม่ใช่โหนดสุดท้าย t = t->next ; // ท่องไปโหนด ถัดไป count++ ; // นับเพิ่มอีก 1 โหนด } } return count ; } 7

int findTarget (node **ptr_head, int target); parameter ชื่อของตัวแปรลิสต์ที่จะค้นหาข้อมูล ข้อมูลที่ต้องการค้นหา return value มีได้ 2 สถานะ คือ พบ (1) หรือ ไม่พบ (0) body of function ค้นหาข้อมูลที่ต้องการไปทีละโหนดในลิงค์ลิสต์ ต้องอาศัยการ “ ท่อง ” ไปในลิงค์ลิสต์ ถ้าพบ return 1, ถ้าไม่พบ return 0 8

findTarget : Singly- linked list int findTarget ( node **ptr_head, int target ) { int found = 0 ; // กำหนดตัวแปร “ พบ ” มีค่าเริ่มต้นเป็น 0 ( ไม่พบ ) node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง ( มีข้อมูล ) t = *ptr_head ; // ถ้า “ ยังไม่ใช่โหนดสุดท้าย ” และ “ ยังไม่พบข้อมูล ” while ( ( t->next != NULL ) && ( t->data != target ) ) t = t->next ; // ท่องไปโหนด ถัดไป // การออกจาก while loop เป็นได้ 2 กรณี // คือ “ ถึงโหนดสุดท้าย ” หรือ “ พบโหนดที่มีข้อมูล ” // ต้องตรวจสอบเพื่อเปลี่ยนตัวแปร found ในกรณีที่พบ ข้อมูล if ( t->data == target ) found = 1 ; } return found ; } 9

findTarget : Singly- circularly-linked list int findTarget ( node **ptr_head, int target ) { int found = 0 ; // กำหนดตัวแปร “ พบ ” มีค่าเริ่มต้นเป็น 0 ( ไม่พบ ) node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง ( มีข้อมูล ) t = *ptr_head ; // ถ้า “ ยังไม่ใช่โหนดสุดท้าย ” และ “ ยังไม่พบข้อมูล ” while (( t->next != *ptr_head ) && ( t->data != target )) t = t->next ; // ท่องไปโหนดถัดไป // การออกจาก while loop เป็นได้ 2 กรณี // คือ “ ถึงโหนดสุดท้าย ” หรือ “ พบโหนดที่มีข้อมูล ” // ต้องตรวจสอบเพื่อเปลี่ยนตัวแปร found ในกรณีที่พบ ข้อมูล if ( t->data == target ) found = 1 ; } return found ; } 10

findTarget : Doubly-linked list int findTarget ( node **ptr_head, int target ) { int found = 0 ; // กำหนดตัวแปร “ พบ ” มีค่าเริ่มต้นเป็น 0 ( ไม่พบ ) node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง ( มีข้อมูล ) t = *ptr_head ; // ถ้า “ ยังไม่ใช่โหนดสุดท้าย ” และ “ ยังไม่พบข้อมูล ” while ( ( t->next != NULL ) && ( t->data != target ) ) t = t->next ; // ท่องไปโหนด ถัดไป // การออกจาก while loop เป็นได้ 2 กรณี // คือ “ ถึงโหนดสุดท้าย ” หรือ “ พบโหนดที่มีข้อมูล ” // ต้องตรวจสอบเพื่อเปลี่ยนตัวแปร found ในกรณีที่พบ ข้อมูล if ( t->data == target ) found = 1 ; } return found ; } 11

findTarget : Doubly- circularly-linked list int findTarget ( node **ptr_head, int target ) { int found = 0 ; // กำหนดตัวแปร “ พบ ” มีค่าเริ่มต้นเป็น 0 ( ไม่พบ ) node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง ( มีข้อมูล ) t = *ptr_head ; // ถ้า “ ยังไม่ใช่โหนดสุดท้าย ” และ “ ยังไม่พบข้อมูล ” while (( t->next != *ptr_head ) && ( t->data != target )) t = t->next ; // ท่องไปโหนดถัดไป // การออกจาก while loop เป็นได้ 2 กรณี // คือ “ ถึงโหนดสุดท้าย ” หรือ “ พบโหนดที่มีข้อมูล ” // ต้องตรวจสอบเพื่อเปลี่ยนตัวแปร found ในกรณีที่พบ ข้อมูล if ( t->data == target ) found = 1 ; } return found ; } 12