void pushnode data node newnode newnode node mallocsizeofnode

  • Slides: 25
Download presentation

堆疊結構表示法(鏈結串列) 加入堆疊 void push(node data) { node *new_node; } new_node = (node *)malloc(sizeof(node)); *new_node

堆疊結構表示法(鏈結串列) 加入堆疊 void push(node data) { node *new_node; } new_node = (node *)malloc(sizeof(node)); *new_node = data; //堆疊資料存入 new_node->next = stack; //取得新的堆疊起點 stack = new_node; //插入 8

走迷宮問題 走迷宮結果 1 1 1 2 1 3 3 3 3 1 1 2

走迷宮問題 走迷宮結果 1 1 1 2 1 3 3 3 3 1 1 2 1 3 1 1 1 3 3 1 1 2 2 2 1 1 1 1 11

佇列結構表示法(陣列) (queue_array. c) 佇列表示法 front: -1 queue 資料 1 [0] rear: 2 資料 3

佇列結構表示法(陣列) (queue_array. c) 佇列表示法 front: -1 queue 資料 1 [0] rear: 2 資料 3 [1] [2] 加入佇列 front: -1 queue 資料 1 [0] 取出佇列 [0] [4] [5] 資料 4 rear: 3 資料 2 資料 3 資料 4 [1] [2] [3] front: 0 queue [3] [4] [5] rear: 3 資料 2 資料 3 資料 4 [1] [2] [3] MAX_SIZE: 6 size: 3 [4] [5] MAX_SIZE: 6 size: 4 MAX_SIZE: 6 size: 3 資料 1 14

佇列結構表示法(串列) 加入佇列 void enqueue(node data) { node *new_node; } new_node = (node *)malloc(sizeof(node)); *new_node

佇列結構表示法(串列) 加入佇列 void enqueue(node data) { node *new_node; } new_node = (node *)malloc(sizeof(node)); *new_node = data; //儲存新節點內容 new_node->next = NULL; if(front==NULL) //插頭 front = new_node; else //插尾 rear->next = new_node; rear = new_node; //取得佇列新結尾 19

加入佇列 new_node 目前有同級會員 queue B 2 NULL A 1 A 2 B 1 front

加入佇列 new_node 目前有同級會員 queue B 2 NULL A 1 A 2 B 1 front rear_a rear_b A級會員 NULL B級會員 new_node A 3 NULL queue A 1 A 2 B 1 front rear_a rear_b A級會員 NULL B級會員 23

加入佇列 目前無同級會員 n 前有更高級會員 new_node B 1 queue A 1 A 2 front rear_a

加入佇列 目前無同級會員 n 前有更高級會員 new_node B 1 queue A 1 A 2 front rear_a NULL rear_b B級會員 A級會員 n 前無更高級會員 new_node queue A 1 NULL rear_a A級會員 B 1 B 2 front rear_b B級會員 NULL 24

取出佇列 目前有多個同級會員 queue A 1 A 2 front rear_a rear_b A級會員 B 2 B

取出佇列 目前有多個同級會員 queue A 1 A 2 front rear_a rear_b A級會員 B 2 B 1 NULL B級會員 目前只有一個同級會員 queue A 2 rear_a front A級會員 B 2 B 1 rear_b B級會員 NULL 25