Advertisement
JonathanA007

Jonathan Arya Priguna_235150301111015/Pseudocode Soal 2

Apr 7th, 2024
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | Source Code | 0 0
  1. DECLARE Node // Deklarasi struktur Node
  2. DECLARE data
  3. DECLARE next
  4.  
  5. DECLARE LinkedList // Deklarasi Linked List
  6. DECLARE head
  7.  
  8. FUNCTION push(item):
  9. DECLARE new_node
  10. new_node.data = item // Buat node baru dengan data yang disediakan
  11.  
  12. IF LinkedList.head = NULL THEN
  13. LinkedList.head = new_node // Jika linked list kosong, buat node baru sebagai head
  14. ELSE
  15. DECLARE current
  16. current = LinkedList.head
  17.  
  18. WHILE current.next != NULL:
  19. current = current.next // Traverse linked list hingga menemukan node terakhir
  20. END WHILE
  21.  
  22. current.next = new_node // Tambahkan node baru di akhir linked list
  23.  
  24. FUNCTION pop():
  25. IF LinkedList.head = NULL THEN
  26. OUTPUT "Stack kosong, pop gagal" // Jika linked list kosong, tampilkan pesan kesalahan
  27. ELSE IF LinkedList.head.next = NULL THEN
  28. DECLARE popped_item
  29. popped_item = LinkedList.head.data // Jika linked list hanya memiliki satu node, ambil datanya
  30. LinkedList.head = NULL // Hapus head
  31. RETURN popped_item // Kembalikan data yang dihapus
  32. ELSE
  33. DECLARE current, prev
  34. current = LinkedList.head
  35. prev = NULL
  36.  
  37. WHILE current.next != NULL:
  38. prev = current
  39. current = current.next // Traverse linked list hingga menemukan node terakhir
  40. END WHILE
  41.  
  42. DECLARE popped_item
  43. popped_item = current.data // Ambil data dari node terakhir
  44. prev.next = NULL // Hapus koneksi dari node sebelumnya ke node terakhir
  45. RETURN popped_item // Kembalikan data yang dihapus
  46. END IF
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement