ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
int isEmpty ( node **ptr_head) ;
parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่าว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ว่าง (0) body of function ตรวจสอบว่าลิสต์ว่างหรือไม่ (*ptr_head == NULL) ถ้าใช่ return 1 , ถ้าไม่ใช่ return 0
2
isEmpty : ทุกกรณีเขียนเหมือนกัน
int isEmpty ( node **ptr_head ) { if ( *ptr_head == NULL ) { // ถ้าลิสต์ว่าง return 1 ; else return 0 ; }
3
int countNode ( node ** ptr_head ) ;
parameter ชื่อของตัวแปรลิสต์ที่จะนับจำนวนโหนด return value จำนวนโหนดในลิงค์ลิสต์ body of function นับจำนวนโหนดในลิงค์ลิสต์ ต้องอาศัยการ “ท่อง” ไปในลิงค์ลิสต์ทีละโหนดและนับจำนวน
4
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 ;
5
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 ;
6
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 ;
7
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 ;
8
int findTarget (node **ptr_head, int target);
parameter ชื่อของตัวแปรลิสต์ที่จะค้นหาข้อมูล ข้อมูลที่ต้องการค้นหา return value มีได้ 2 สถานะ คือ พบ (1) หรือ ไม่พบ (0) body of function ค้นหาข้อมูลที่ต้องการไปทีละโหนดในลิงค์ลิสต์ ต้องอาศัยการ “ท่อง” ไปในลิงค์ลิสต์ ถ้าพบ return 1 , ถ้าไม่พบ return 0
9
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 ;
10
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 ;
11
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 ;
12
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 ;
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.