1 / 30

Data Structure: Linked List

Data Structure: Linked List. Data Structure: Linked List. Data Structure: Linked List. Data Structure: Linked List. Data Structure: Linked List. Data Structure: Linked List. Data Structure: Linked List. Data Structure: Linked List. Data Structure: Linked List. Data Structure: Linked List.

zlhna
Download Presentation

Data Structure: Linked List

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Data Structure:Linked List

  2. Data Structure:Linked List

  3. Data Structure:Linked List

  4. Data Structure:Linked List

  5. Data Structure:Linked List

  6. Data Structure:Linked List

  7. Data Structure:Linked List

  8. Data Structure:Linked List

  9. Data Structure:Linked List

  10. Data Structure:Linked List

  11. List Using Linked Memory • Various cells of memory are not allocated consecutively in memory. University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 11

  12. List Using Linked Memory • Various cells of memory are not allocated consecutively in memory. • Not enough to store the elements of the list. University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 12

  13. List Using Linked Memory • Various cells of memory are not allocated consecutively in memory. • Not enough to store the elements of the list. • With arrays, the second element was right next to the first element. University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 13

  14. List Using Linked Memory • Various cells of memory are not allocated consecutively in memory. • Not enough to store the elements of the list. • With arrays, the second element was right next to the first element. • Now the first element must explicitly tell us where to look for the second element. University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 14

  15. List Using Linked Memory • Various cells of memory are not allocated consecutively in memory. • Not enough to store the elements of the list. • With arrays, the second element was right next to the first element. • Now the first element must explicitly tell us where to look for the second element. • Do this by holding the memory address of the second element University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 15

  16. object next Linked List • Create a structure called a Node. • The object field will hold the actual list element. • The next field in the structure will hold the starting location of the next node. • Chain the nodes together to form a linked list. University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 16

  17. head 2 6 8 7 1 size=5 current Linked List • Picture of our list (2, 6, 7, 8, 1) stored as a linked list: University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 17

  18. Linked List Note some features of the list: • Need a head to point to the first node of the list. Otherwise we won’t know where the start of the list is. University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 18

  19. Linked List Note some features of the list: • Need a head to point to the first node of the list. Otherwise we won’t know where the start of the list is. • The current here is a pointer, not an index. University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 19

  20. Linked List Note some features of the list: • Need a head to point to the first node of the list. Otherwise we won’t know where the start of the list is. • The current here is a pointer, not an index. • The next field in the last node points to nothing. We will place the memory address NULL which is guaranteed to be inaccessible. University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 20

  21. 2 Linked List : Actual picture in memory: 1051 6 1052 1063 current 1053 1063 1054 2 head 1055 1051 1056 6 8 7 1 1057 7 1058 1060 current 1059 1060 1 1061 0 head 1062 1054 1063 8 1064 1057 1065 University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 21

  22. newNode 9 Linked List Operations • add(9): Create a new node in memory to hold ‘9’Node* newNode = new Node(9); University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 22

  23. head 2 newNode 9 6 8 7 1 size=5 6 current 9 newNode 2 1 3 Linked List Operations • add(9): Create a new node in memory to hold ‘9’Node* newNode = new Node(9); • Link the new node into the list University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 23

  24. C++ Code for Linked List The Node class class Node { public: int get() { return object; }; void set(int object) { this->object = object; }; Node *getNext() { return nextNode; }; void setNext(Node *nextNode) { this->nextNode = nextNode; }; private: int object; Node *nextNode; }; University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 24

  25. C++ Code for Linked List #include <stdlib.h> #include "Node.cpp" class List { public: // Constructor List() { headNode = new Node(); headNode->setNext(NULL); currentNode = NULL; size = 0; }; University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 25

  26. C++ Code for Linked List void add(intaddObject) { Node* newNode = new Node(); newNode->set(addObject); if( currentNode != NULL ){ newNode->setNext(currentNode->getNext()); currentNode->setNext(newNode); lastCurrentNode = currentNode; currentNode = newNode; } else { newNode->setNext(NULL); headNode->setNext(newNode); lastCurrentNode = headNode; currentNode = newNode; } size++; }; University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 26

  27. 7 Building a Linked List List.add(8); list.add(7); list.add(1); currentNode headNode 2 6 8 1 size=5 lastcurrentNode University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 27

  28. C++ Code for Linked List int get() { if (currentNode != NULL) return currentNode->get(); }; University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 28

  29. C++ Code for Linked List bool next() { if (currentNode == NULL) return false; lastCurrentNode = currentNode; currentNode = currentNode->getNext(); if (currentNode == NULL || size == 0) return false; else return true; }; University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 29

  30. Questions University Of Malakand | Department of Computer Science | Visual Computing Research Group | Dr. Engr.Sami ur Rahman | 30

More Related