data structures cs301 power point slides lecture 03

46
Lecture No.03 Data Structures Dr. Sohail Aslam

Upload: nasir-mehmood

Post on 20-Dec-2014

326 views

Category:

Technology


10 download

DESCRIPTION

 

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