Top Banner
Lecture No.03 Data Structures Dr. Sohail Aslam
46

Data structures cs301 power point slides lecture 03

Dec 20, 2014

Download

Technology

Nasir Mehmood

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data structures   cs301 power point slides lecture 03

Lecture No.03

Data Structures

Dr. Sohail Aslam

Page 2: Data structures   cs301 power point slides lecture 03

Linked List Actual picture in memory:

1051

1052

1055

1059

1060

1061

1062

1063

1064

1056

1057

1058

1053

1054 2

6

8

7

1

1051

1063

1057

1060

0

head 1054

1063current

2 6 8 7 1

head

current

1065

Page 3: Data structures   cs301 power point slides lecture 03

Linked List Operations add(9): Create a new node in memory to hold ‘9’

Node* newNode = new Node(9);

9newNode

Page 4: Data structures   cs301 power point slides lecture 03

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

9newNode

2 6 8 7 1

head

current

size=5 6

9

newNode

1

3

2

Page 5: Data structures   cs301 power point slides lecture 03

C++ Code for Linked ListThe 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;

};

Page 6: Data structures   cs301 power point slides lecture 03

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;

};

Page 7: Data structures   cs301 power point slides lecture 03

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;

};

Page 8: Data structures   cs301 power point slides lecture 03

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;

};

Page 9: Data structures   cs301 power point slides lecture 03

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;

};

Page 10: Data structures   cs301 power point slides lecture 03

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;

};

Page 11: Data structures   cs301 power point slides lecture 03

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;

};

Page 12: Data structures   cs301 power point slides lecture 03

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;

};

Page 13: Data structures   cs301 power point slides lecture 03

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;

};

Page 14: Data structures   cs301 power point slides lecture 03

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;

};

Page 15: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 16: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 17: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 18: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 19: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 20: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 21: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 22: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 23: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 24: Data structures   cs301 power point slides lecture 03

#include <stdlib.h>#include "Node.cpp"

class List {public:

// ConstructorList() {

headNode = new Node();headNode->setNext(NULL);currentNode = NULL;size = 0;

};

C++ Code for Linked List

Page 25: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 26: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 27: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 28: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 29: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 30: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 31: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 32: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 33: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 34: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 35: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 36: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 37: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 38: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 39: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 40: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List void add(int addObject) {

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++; };

Page 41: Data structures   cs301 power point slides lecture 03

Building a Linked List

headNode size=0List list;

Page 42: Data structures   cs301 power point slides lecture 03

Building a Linked List

headNode

2headNode

currentNode

size=1

lastcurrentNode

size=0List list;

list.add(2);

Page 43: Data structures   cs301 power point slides lecture 03

Building a Linked List

headNode

2headNode

currentNode

size=1

lastcurrentNode

2 6headNode

currentNode

size=2

lastcurrentNode

size=0List list;

list.add(2);

list.add(6);

Page 44: Data structures   cs301 power point slides lecture 03

Building a Linked List

List.add(8); list.add(7); list.add(1);

2 6 7 1headNode

currentNode

size=5

lastcurrentNode

8

Page 45: Data structures   cs301 power point slides lecture 03

C++ Code for Linked List

int get() { if (currentNode != NULL) return currentNode->get();

};

Page 46: Data structures   cs301 power point slides lecture 03

C++ Code for Linked Listbool next() {

if (currentNode == NULL) return false;

lastCurrentNode = currentNode;currentNode = currentNode->getNext();if (currentNode == NULL || size == 0)

return false;else

return true;};