Data Structures and Algorithms
|
|
- Cecil Atkinson
- 5 years ago
- Views:
Transcription
1 Data Structures and Algorithms First Semester 2017/2018 Linked Lists Eng. Anis Nazer
2 Linked List ADT Is a list of nodes Each node has: data (can be any thing, int, char, Person, Point, day,...) link to the next node in the list (usually a pointer) Operations on a Linked list insert a node into the list delete a node from the list search the list for a node sort the list
3 Linked List Node: List: head data data data data NULL
4 Implementation We can use C++ classes to implement a linked list Node class: class Node { public: int data; Node *link; Node(int d = 0, Node *p = NULL); ; Node::Node(int d, Node * p ) { data = d; link = p;
5 Example 1 What does the following code do? Node x(15); variable x 15 NULL
6 Example 1 What does the following code do? Node x(15); Node y; variable x 15 NULL variable y 0 NULL
7 Example 1 What does the following code do? Node x(15); Node y; Node *h = &x; h variable x 15 NULL variable y 0 NULL
8 Example 1 What does the following code do? Node x(15); Node y; Node *h = &x; h >link = &y; h variable x 15 NULL variable y 0 NULL
9 Example 1 What does the following code do? Node x(15); Node y; Node *h = &x; h >link = &y; cout << h >data << endl; cout << h >link >data << endl; h variable x 15 variable y 0 NULL
10 Example 1 What does the following code do? Node x(15); Node y; Node *h = &x; h >link = &y; cout << h >data << endl; cout << h >link >data << endl; output window 15 0
11 Example 2 What does the following code do? Node *head, *p; head = new Node(10); cout << head >data << endl; p = new Node(7); head >link = p; cout << head >data << endl; cout << head >link >data << endl; //cout << head >link >link >data << endl; // problem why? p = new Node(9); head >link >link = p; cout << head >link >link >data << endl;
12 Example 2 Node *head, *p; head p head = new Node(10); head p 10 NULL cout << head >data << endl; output window 10
13 Example 2 p = new Node(7); head p 10 NULL 7 NULL head >link = p; head 10 p 7 NULL cout << head >data << endl; cout << head >link >data << endl; output window
14 Example 2 p = new Node(9); head p 10 7 NULL 9 NULL head >link >link = p; head 10 7 p 9 NULL cout << head >link >link >data << endl; output window
15 Exercises Write statements to read 10 numbers from the user and store them in a linked list Write a loop to display the elements of a linked list. Assume the pointer head points to the first node in the list Write a loop to display the number of elements of a linked list. Assume the pointer head points to the first node in the list
16 Example 3 p = head; head p NULL head = head >link; p head NULL delete p; p head 7 9 NULL
17 Example head p 7 9 NULL p = head; head = head >link; delete p; p head 7 9 NULL p head 9 NULL
18 Example head p 9 NULL p = head; head = head >link; delete p; p head 9 NULL p head NULL
19 Example 2 how to delete the list? // delete objects p = head; head = head >link; delete p; p = head; head = head >link; delete p; p = head; head = head >link; delete p; // delete first node // delete second node // delete third node
20 Example 3 What does the following code do? Node *head; head = new Node( 3); head = new Node(5, head); head = new Node(11, head); head = new Node(19, head); Node *p; p = head; while ( p!= NULL ) { cout << p >data << endl; p = p >link; while ( head!= NULL ) { p = head; head = head >link; delete p;
21 Linked List Class UML head : Node * tail : Node * LinkedList + LinkedList() + ~Linked() + isempty() const : bool + addtohead(int) : void + addtotail(int) : void + deletefromhead() : int + deletefromtail() : int + deletenode(int) : void + isinlist(int) const : bool + display() const : void
22 LinkedList class class LinkedList { public: LinkedList(); ~LinkedList(); bool isempty() const; void addtohead(int d); void addtotail(int d); int deletefromhead(); int deletefromtail(); void deletenode(int d); bool isinlist(int) const; void display() const; private: Node *head, *tail; ;
23 Example Write statements to: create a linked list called L1 add the following to the list: 3, 9, 7, 8, 5 display the data in the last node and delete it delete the node containing data 7 display the contentes of the list
24 LinkedList class constructor and destructor LinkedList::LinkedList( ) { head = tail = NULL; LinkedList::~LinkedList( ) { Node * p; while ( head!= NULL ) { p = head; head = head >link; delete p;
25 LinkedList class isempty(), display() : bool LinkedList::isEmpty() const { return (head == NULL); void LinkedList::display() const { Node * p = head; while ( p!= NULL ) { cout << p >data << endl; p = p >link;
26 LinkedList class isinlist() : bool LinkedList::isInList(int d) const { Node * p = head; while ( p!= NULL ) { if ( p >data == d ) return true; p = p >link; return false;
27 LinkedList class addtohead() 1) new node 2) link of new node equals head 3) update head to new node 4) special case: if list is empty, tail should be updated to new node void LinkedList::addToHead(int d) { head = new Node(d, head); if ( tail == NULL ) tail = head;
28 LinkedList class addtotail() : new node if list is empty head, tail should be updated to new node if list is not empty: update tail link to point to new node update tail void LinkedList::addToTail(int d) { Node *p = new Node(d); if ( isempty() ) { head = tail = p; else { tail >link = p; tail = p;
29 LinkedList class deletefromhead() : get data p points to head if a single node: set head and tail to NULL otherwise: update head to next node delete p, and return data int LinkedList::deleteFromHead() { int d = head >data; Node *p = head; if ( head == tail ) { head = tail = NULL; else { head = head >link; delete p; return d;
30 LinkedList class deletefromtail(): Two cases: if a single node: delete node and update head, tail, and return data otherwise we need a pointer to the previous node Steps: start with head and keep moving in the list until you reach tail delete node, update tail, return data
31 LinkedList class deletefromtail(): int LinkedList::deleteFromTail() { int d = tail >data; if ( head == tail ) { delete head; head = tail = NULL; else { Node *p = head; while ( p >link!= tail ) p = p >link; delete tail; tail = p; tail >link = NULL; return d;
32 LinkedList class deletenode(): if list is empty, do nothing if list is not empty, the following cases should be considered: one node more than one node where target node is: first node middle node last node
33 LinkedList class deletenode(): if (! isempty() ) { if ( head == tail && head >data == d ) { // case 1 else { if ( head >data == d ) { // case 2 else { // case 3 // if target is tail, update tail
34 LinkedList class deletenode(): list is not empty, and we have a single node (case 1): if (! isempty() ) { if ( head == tail && head >data == d ) { delete head; head = tail = NULL; else { //...
35 LinkedList class deletenode(): list is not empty, and we have more than one node, head is the target node (case 2): if (! isempty() ) { if ( head == tail && head >data == d ) { //... else { if ( head >data == d ) { Node *p = head; head = head >link; delete p; else { //...
36 LinkedList class deletenode(): list is not empty, and we have more than one node, target is not head node (case 3): we need two pointers, p : to point to a node q : to point to the previous node, (predecessor) Steps: traverse the list until you reach the target make q->link point to the node after p if the deleted node is the tail, update the tail
37 LinkedList class deletenode(): list is not empty, and we have more than one node, target is not head node (case 3): else { // case 3 Node *p, *q; // q predecessor to p q = head; p = head >link; while(p!= NULL && p >data!= d) { p = p >link; q = q >link; if ( p!= NULL ) { q >link = p >link; if ( p == tail ) tail = q; delete p;
38 LinkedList class void LinkedList::deleteNode(int d) { if (! isempty() ) { if ( head == tail && head >data == d ) { // case 1 delete head; head = tail = NULL; else { if ( head >data == d ) { // case 2 Node *p = head; head = head >link; delete p; else { // case 3 Node *p, *q; // q predecessor to p q = head; p = head >link; while(p!= NULL && p >data!= d) { p = p >link; q = q >link; if ( p!= NULL ) { q >link = p >link; if ( p == tail ) tail = q; delete p;
39 Example What does the following code do? int main() { LinkedList S; for (int i=0 ; i < 8 ; i++) S.addToHead(i); S.deleteNode(2); S.deleteNode(7); for (int i=0; i < 4 ; i++) cout << S.deleteFromTail() << endl; cout << endl; S.display(); return 0;
40 Linked List Complexities What is the complexity of the following operations for a linked list? addtohead() addtotail() deletefromhead() deletefromtail() deletenode() isinlist() display()
41 Advantages What are the advantages of using a linked list? Why not just use an array?
Linked List using a Sentinel
Linked List using a Sentinel Linked List.h / Linked List.h Using a sentinel for search Created by Enoch Hwang on 2/1/10. Copyright 2010 La Sierra University. All rights reserved. / #include
More informationData Structures And Algorithms
Data Structures And Algorithms Stacks Eng. Anis Nazer First Semester 2017-2018 Stack An Abstract data type (ADT) Accessed only on one end Similar to a stack of dishes you can add/remove on top of stack
More information1 Deletion in singly linked lists (cont d) 1 Other Functions. 1 Doubly Linked Lists. 1 Circular lists. 1 Linked lists vs. arrays
Unit 3: Linked Lists Part 2: More on Linked Lists 1 Deletion in singly linked lists (cont d) 1 Other Functions Engineering 4892: Data Structures 1 Doubly Linked Lists Faculty of Engineering & Applied Science
More informationCMSC 341 Lecture 7 Lists
CMSC 341 Lecture 7 Lists Today s Topics Linked Lists vs Arrays Nodes Using Linked Lists Supporting Actors (member variables) Overview Creation Traversal Deletion UMBC CMSC 341 Lists 2 Linked Lists vs Arrays
More information2) Which data structure is most suitable for search operations? A) Linked List B) Queue C) Hash table D) Sorted array
Philadelphia University Faculty of Engineering Student Name: Student Number: Dept. of omputer Engineering Final Exam, First Semester: 2016/201 ourse Title: Data Structures and Algorithms Date: 31/12/201
More informationCSCE 110 PROGRAMMING FUNDAMENTALS
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 16. Linked Lists Prof. amr Goneid, AUC 1 Linked Lists Prof. amr Goneid, AUC 2 Linked Lists The Linked List Structure Some Linked List
More informationCSCE 110 PROGRAMMING FUNDAMENTALS
CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 15. Dictionaries (1): A Key Table Class Prof. amr Goneid, AUC 1 Dictionaries(1): A Key Table Class Prof. Amr Goneid, AUC 2 A Key Table
More informationl Determine if a number is odd or even l Determine if a number/character is in a range - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to: l Determine if a number is odd or even CS 2308 Fall 2016 Jill Seaman l Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More informationLecture Notes CPSC 122 (Fall 2014) Today Quiz 7 Doubly Linked Lists (Unsorted) List ADT Assignments Program 8 and Reading 6 out S.
Today Quiz 7 Doubly Linked Lists (Unsorted) List ADT Assignments Program 8 and Reading 6 out S. Bowers 1 of 11 Doubly Linked Lists Each node has both a next and a prev pointer head \ v1 v2 v3 \ tail struct
More information! A data structure representing a list. ! A series of nodes chained together in sequence. ! A separate pointer (the head) points to the first
Ch. 17: Linked Lists 17.1 Introduction to Linked Lists! A data structure representing a list! A series of nodes chained together in sequence CS 2308 Spring 2013 Jill Seaman - Each node points to one other
More informationWentworth Institute of Technology COMP201 Computer Science II Spring 2015 Derbinsky. Stacks and Queues. Lecture 11.
Lecture 11 1 More Data Structures In this lecture we will use a linked list to implement two abstract data types (ADT) An ADT provides the interface, or what a data structure does We can then use code
More informationBEng (Hons) Telecommunications. Examinations for 2016 / Semester 2
BEng (Hons) Telecommunications Cohort: BTEL/15/FT Examinations for 2016 / Semester 2 Resit Examination for BTEL/12/FT & BTEL/14/FT MODULE: Programming for Engineers MODULE CODE: PROG1114C Duration: 3 Hours
More informationExample Final Questions Instructions
Example Final Questions Instructions This exam paper contains a set of sample final exam questions. It is for practice purposes only. You ll most likely need longer than three hours to answer all the questions.
More informationWeek 3 Linked Lists & Sorting Algorithms
CPSC 19 Week Linked Lists & Sorting Algorithms Xiaoyang Liu xiaoyali@ucalgary.ca Linked Lists Limitations of array data structure Linked Lists Limitations of array data structure Changing the size of the
More information! A data structure representing a list. ! A series of dynamically allocated nodes. ! A separate pointer (the head) points to the first
Linked Lists Introduction to Linked Lists A data structure representing a Week 8 Gaddis: Chapter 17 CS 5301 Spring 2014 Jill Seaman A series of dynamically allocated nodes chained together in sequence
More informationCS24 Week 4 Lecture 1
CS24 Week 4 Lecture 1 Kyle Dewey Overview Additional use of const in C++ List ADT Array Lists Linked Lists Additional Use of const We ve seen const already in two positions: What is pointed to is constant
More information! A data type for which: ! An ADT may be implemented using various. ! Examples:
List ADT: Linked lists vs. Arrays CS 2308 Fall 2018 Jill Seaman Abstract Data Type! A data type for which: - only the properties of the data and the operations to be performed on the data are specific,
More informationA linked list. Subtopic: Linked lists. List-node structure type. Array implementation of a linked list. Inserting into a sorted collection
Subtopic: Linked lists A linear structure, like an array Composed of self-referential nodes Operations: insert, delete, traverse Array implementation Dynamic-allocation implementation David Keil 1/03 1
More informationCommon Misunderstandings from Exam 1 Material
Common Misunderstandings from Exam 1 Material Kyle Dewey Stack and Heap Allocation with Pointers char c = c ; char* p1 = malloc(sizeof(char)); char** p2 = &p1; Where is c allocated? Where is p1 itself
More informationDynamic Data Structures
Dynamic Data Structures We have seen that the STL containers vector, deque, list, set and map can grow and shrink dynamically. We now examine how some of these containers can be implemented in C++. To
More informationData Structures (INE2011)
Data Structures (INE2011) Electronics and Communication Engineering Hanyang University Haewoon Nam Lecture 5 1 Linked List A chain of nodes Nodes are linked together using pointers NULL a b c d e A node
More informationData Structures & Algorithms
A 1. What are the basic components of a linked list? A. Head and tail are the only important components B. Data members for the information to be stored and a link to the next item C. Generic class because
More information// Pointer to the first thing in the list
Linked Lists Dynamic variables combined with structs or classes can be linked together to form dynamic lists or other structures. We define a record (called a node) that has at least two members: next
More informationLinked Lists. Gaddis Ch. 17. CS 2308 :: Spring 2016 Molly O'Neil
Linked Lists Gaddis Ch. 17 CS 2308 :: Spring 2016 Molly O'Neil List ADT A list is an abstract data type representing an ordered sequence of values For example, both MP3 Player assignments have used lists:
More information1 Short Answer (7 Points Each)
1 Short Answer (7 Points Each) 1. Given the following function, what operations will need to be overloaded in the class T for this code to compile? template T square(t n) { return n * n; } The
More informationWhat is a List? elements, with a linear relationship. first) has a unique predecessor, and. unique successor.
5 Linked Structures What is a List? A list is a homogeneous collection of elements, with a linear relationship between elements. That is, each list element (except the first) has a unique predecessor,
More informationLinked Lists 28/11/2018. Nodes with member functions. The need for a linked list class
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Create a linked list class Implement numerous member functions Explain how to step through a linked list Linked Lists Douglas Wilhelm
More informationProgramming Language. Control Structures: Repetition (while) Eng. Anis Nazer Second Semester
Programming Language Control Structures: Repetition (while) Eng. Anis Nazer Second Semester 2017-2018 Repetition statements Control statements change the order which statements are executed Selection :
More informationB-Trees. nodes with many children a type node a class for B-trees. an elaborate example the insertion algorithm removing elements
B-Trees 1 B-Trees nodes with many children a type node a class for B-trees 2 manipulating a B-tree an elaborate example the insertion algorithm removing elements MCS 360 Lecture 35 Introduction to Data
More informationExample Final Questions Instructions
Example Final Questions Instructions This exam paper contains a set of sample final exam questions. It is for practice purposes only. You ll most likely need longer than three hours to answer all the questions.
More informationPushing at the back 28/11/2018. Problem. Our linked list class
ECE 150 Fundamentals of Programming Outline 2 In this lesson, we will: Understand how to push a new entry onto the back of the linked list Determine how we can speed this up Understand that the cost is
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 07: Linked Lists MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Linked Lists 2 Introduction Linked List Abstract Data Type SinglyLinkedList ArrayList Keep in Mind Introduction:
More informationSCJ2013 Data Structure & Algorithms. Binary Search Tree. Nor Bahiah Hj Ahmad
SCJ2013 Data Structure & Algorithms Binary Search Tree Nor Bahiah Hj Ahmad Binary Search Tree A binary search tree has the following properties: For every node n in the tree Value of n is greater than
More informationCpSc212 Goddard Notes Chapter 10. Linked Lists
CpSc212 Goddard Notes Chapter 10 Linked Lists 10.1 Links and Pointers The linked list is not an ADT in its own right; rather it is a way of implementing many data structures. It is designed to replace
More informationData Structures and Algorithms
Data Structures and Algorithms Alice E. Fischer Lecture 3 217 Alice E. Fischer Data Structures L3... 1/31 1 Arrays Growing Arrays vectors 2 3 Empty Lists Inserting Data - Unsorted Inserting Data - Sorted
More informationCS 216 Exam 1 Fall SOLUTION
CS 216 Exam 1 Fall 2004 - SOLUTION Name: Lab Section: Email Address: Student ID # This exam is closed note, closed book. You will have an hour and fifty minutes total to complete the exam. You may NOT
More informationC:\Temp\Templates. Download This PDF From The Web Site
11 2 2 2 3 3 3 C:\Temp\Templates Download This PDF From The Web Site 4 5 Use This Main Program Copy-Paste Code From The Next Slide? Compile Program 6 Copy/Paste Main # include "Utilities.hpp" # include
More informationUniversity of Illinois at Urbana-Champaign Department of Computer Science. First Examination
University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Spring 2007 7p-9p, Thursday, March 1 Name: NetID: Lab Section
More informationUEE1303(1070) S12: Object-Oriented Programming Operator Overloading and Function Overloading
UEE1303(1070) S12: Object-Oriented Programming Operator Overloading and Function Overloading What you will learn from Lab 7 In this laboratory, you will learn how to use operator overloading and function
More informationAn abstract tree stores data that is hierarchically ordered. Operations that may be performed on an abstract tree include:
4.2 Abstract Trees Having introduced the tree data structure, we will step back and consider an Abstract Tree that stores a hierarchical ordering. 4.2.1 Description An abstract tree stores data that is
More informationProgramming Language. Functions. Eng. Anis Nazer First Semester
Programming Language Functions Eng. Anis Nazer First Semester 2016-2017 Definitions Function : a set of statements that are written once, and can be executed upon request Functions are separate entities
More informationJordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A
Jordan University of Science & Technology Department of Computer Science CS 211 Exam #1 (23/10/2010) -- Form A Name: ID#: Section #: Day & Time: Instructor: Answer all questions as indicated. Closed book/closed
More informationLab 2: ADT Design & Implementation
Lab 2: ADT Design & Implementation By Dr. Yingwu Zhu, Seattle University 1. Goals In this lab, you are required to use a dynamic array to design and implement an ADT SortedList that maintains a sorted
More informationMULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR
STUDENT IDENTIFICATION NO MULTIMEDIA COLLEGE JALAN GURNEY KIRI 54100 KUALA LUMPUR FIFTH SEMESTER FINAL EXAMINATION, 2014/2015 SESSION PSD2023 ALGORITHM & DATA STRUCTURE DSEW-E-F-2/13 25 MAY 2015 9.00 AM
More informationLink-Based Implementations. Chapter 4
Link-Based Implementations Chapter 4 Overview Assignment-2 Slack code puzzle Negative time durations Both -1:59:59 and -0:00:01 are OK to represent -1 seconds Slack no assignment code posting Code Puzzle
More informationCOL106: Data Structures and Algorithms. Ragesh Jaiswal, IIT Delhi
Stack and Queue How do we implement a Queue using Array? : A collection of nodes with linear ordering defined on them. Each node holds an element and points to the next node in the order. The first node
More informationAbstract Data Types 1
Abstract Data Types 1 Purpose Abstract Data Types (ADTs) Lists Stacks Queues 2 Abstract Data Types (ADTs) ADT is a set of objects together with a set of operations. Abstract in that implementation of operations
More informationMidterm Practice TA: Brian Choi Section Webpage:
Midterm Practice TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs32 *** Make sure you try all exercises by hand! You won t have access to Visual C++ during the exam.
More informationPart 3: Function Pointers, Linked Lists and nd Arrays
Part 3: Function Pointers, Linked Lists and nd Arrays Prof. Dr. Ulrik Schroeder C++ - Einführung ins Programmieren WS 03/04 http://learntech.rwth-aachen.de/lehre/ws04/c++/folien/index.html Pointer to functions
More informationCMSC 341 Lecture 10 Binary Search Trees
CMSC 341 Lecture 10 Binary Search Trees John Park Based on slides from previous iterations of this course Review: Tree Traversals 2 Traversal Preorder, Inorder, Postorder H X M A K B E N Y L G W UMBC CMSC
More informationCPSC 260 Data Structures and Algorithms for Computer Engineers Linked Lists!
CPSC 260 Data Structures and Algorithms for Computer Engineers Linked Lists! Winter 2013 Instructor: Hassan Khosravi Problems with Arrays and Vectors With arrays and vectors you are allocated a large space.
More informationUniversity of Illinois at Urbana-Champaign Department of Computer Science. First Examination
University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Spring 2007 7p-9p, Thursday, March 1 Name: NetID: Lab Section
More informationData Structures And Algorithms
Data Structures And Algorithms Recursion Eng. Anis Nazer First Semester 2016-2017 Recursion Recursion: to define something in terms of itself Example: factorial n!={ 1 n=0 n (n 1)! n>0 Recursion Example:
More informationCS Data Structure Spring Answer Key- Assignment #3
CS300-201 Data Structure Spring 2012 2013 Answer Key- Assignment #3 Due Sunday, Mar 3 rd. Q1): Find Big-O for binary search algorithm, show your steps. Solution 1- The task is to search for a given value
More informationAbstract Data Types. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University
Abstract Data Types CptS 223 Advanced Data Structures Larry Holder School of Electrical Engineering and Computer Science Washington State University 1 Purpose Abstract Data Types (ADTs) Lists Stacks Queues
More informationC++ - Lesson 2 This is a function prototype. a' is a function that takes an integer array argument and returns an integer pointer.
C++ - Lesson 2 1. Explain the following declarations: a) int *a(int a[]); This is a function prototype. 'a' is a function that takes an integer array argument and returns an integer pointer. b) const char
More informationList Iterator Implementation
List Iterator Implementation Lecture 28 Section 14.6 Robb T. Koether Hampden-Sydney College Fri, Apr 10, 2015 Robb T. Koether (Hampden-Sydney College) List Iterator Implementation Fri, Apr 10, 2015 1 /
More information! Determine if a number is odd or even. ! Determine if a number/character is in a range. - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises CS 2308 Spring 2014 Jill Seaman Chapters 1-7 + 11 Write C++ code to: Determine if a number is odd or even Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More informationFaculty of Information and Communication Technologies
Swinburne University Of Technology Faculty of Information and Communication Technologies ASSIGNMENT COVER SHEET Subject Code: Subject Title: Assignment number and title: Due date: Lecturer: HIT3303 Data
More informationLinked Lists. Linked List Nodes. Walls and Mirrors Chapter 5 10/25/12. A linked list is a collection of Nodes: item next -3.
Linked Lists Walls and Mirrors Chapter 5 Linked List Nodes public class Node { private int item; private Node next; public Node(int item) { this(item,null); public Node(int item, Node next) { setitem(item);
More informationAbstract Data Types 1
Abstract Data Types 1 Purpose Abstract Data Types (ADTs) Lists Stacks Queues 2 Primitive vs. Abstract Data Types Primitive DT: programmer ADT: programmer Interface (API) data Implementation (methods) Data
More informationLinked List. ape hen dog cat fox. tail. head. count 5
Linked Lists Linked List L tail head count 5 ape hen dog cat fox Collection of nodes with a linear ordering Has pointers to the beginning and end nodes Each node points to the next node Final node points
More informationDATA STRUCTURES AND ALGORITHMS LECTURE 08 QUEUES IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD
DATA STRUCTURES AND ALGORITHMS LECTURE 08 S IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD S ABSTRACT DATA TYPE An Abstract Queue (Queue ADT) is an abstract data type that emphasizes specific
More informationQuestion Q1 Q2 Q3 Q4 Q5 Q6 Q7 Total
Philadelphia University Faculty of Engineering Student Name: Student Number: Dept. of Computer Engineering Final Exam, First Semester: 201/2018 Course Title: Data Structures and lgorithms Date: 1/2/2018
More informationCOMP 2355 Introduction to Systems Programming
COMP 2355 Introduction to Systems Programming Christian Grothoff christian@grothoff.org http://grothoff.org/christian/ 1 Today Class syntax, Constructors, Destructors Static methods Inheritance, Abstract
More informationComS 228 Exam 1. September 27, 2004
ComS 228 Exam 1 September 27, 2004 Name: University ID: Section: (10 percent penalty if incorrect) This is a one-hour, closed-book, closed-notes, closed-calculator exam. The exam consists of 9 pages (including
More informationChapter 17: Linked Lists
Chapter 17: Linked Lists 17.1 Introduction to the Linked List ADT Introduction to the Linked List ADT Linked list: set of data structures (nodes) that contain references to other data structures list head
More informationDo not write in this area A.1 A.2 A.3 A.4 A.5 A.6 B.1 B.2 B.3 TOTAL. Maximum possible points:
Name: Student ID: Instructor: Borja Sotomayor Do not write in this area A.1 A.2 A.3 A.4 A.5 A.6 B.1 B.2 B.3 TOTAL Maximum possible points: 75 + 10 This homework has two parts: Part A (Polynomial ADT) and
More information! Operators such as =, +, <, can be defined to. ! The function names are operator followed by the. ! Otherwise they are like normal member functions:
Operator Overloading, Lists and Templates Week 6 Gaddis: 14.5, 16.2-16.4 CS 5301 Spring 2016 Jill Seaman Operator Overloading! Operators such as =, +,
More information+ Abstract Data Types
Linked Lists Abstract Data Types An Abstract Data Type (ADT) is: a set of values a set of operations Sounds familiar, right? I gave a similar definition for a data structure. Abstract Data Types Abstract
More informationLAB 5, THE HIDDEN DELIGHTS OF LINKED LISTS
LAB 5, THE HIDDEN DELIGHTS OF LINKED LISTS Questions are based on the Main and Savitch review questions for chapter 5 in the Exam Preparation section of the webct course page. In case you haven t observed
More informationArray Elements as Function Parameters
Arrays Class 26 Array Elements as Function Parameters we have seen that array elements are simple variables they can be used anywhere a normal variable can unsigned values [] {10, 15, 20}; unsigned quotient;
More informationLists. CSC212 Lecture 8 D. Thiebaut, Fall 2014
Lists CSC212 Lecture 8 D. Thiebaut, Fall 2014 Review List = Organization of Data in a Linear Fashion, where Order is Important Set of actions that can be carried out efficiently on the data. Typical Actions
More informationCSE 143. Complexity Analysis. Program Efficiency. Constant Time Statements. Big Oh notation. Analyzing Loops. Constant Time Statements (2) CSE 143 1
CSE 1 Complexity Analysis Program Efficiency [Sections 12.1-12., 12., 12.9] Count number of instructions executed by program on inputs of a given size Express run time as a function of the input size Assume
More informationSCJ2013 Data Structure & Algorithms. Queue. Nor Bahiah Hj Ahmad & Dayang Norhayati A. Jawawi
SCJ2013 Data Structure & Algorithms Queue Nor Bahiah Hj Ahmad & Dayang Norhayati A. Jawawi Course Objectives At the end of the lesson students are expected to be able to: Understand queue concepts and
More informationLargest Online Community of VU Students
WWW.VUPages.com http://forum.vupages.com WWW.VUTUBE.EDU.PK Largest Online Community of VU Students MIDTERM EXAMINATION SEMESTER FALL 2003 CS301-DATA STRUCTURE Total Marks:86 Duration: 60min Instructions
More informationCS 61B, Spring 1996 Midterm #1 Professor M. Clancy
CS 61B, Spring 1996 Midterm #1 Professor M. Clancy Problem 0 (1 point, 1 minute) Put your login name on each page. Also make sure you have provided the information requested on the first page. Problem
More informationContents. Friends. C++ Object Oriented Programming Pei-yih Ting 93/04 NTOU CS. Output 10
Friends C++ Object Oriented Programming Pei-yih Ting 93/04 NTOU CS Contents Classes that need other classes Friend member functions in C++ Do we really need friends in C++? Granting friendship to another
More informationProgramming Language. Control Structures: Selection (switch) Eng. Anis Nazer First Semester
Programming Language Control Structures: Selection (switch) Eng. Anis Nazer First Semester 2018-2019 Multiple selection choose one of two things if/else choose one from many things multiple selection using
More informationlecture09: Linked Lists
lecture09: Largely based on slides by Cinda Heeren CS 225 UIUC 24th June, 2013 Announcements mp2 due tonight mt1 tomorrow night! mt1 review instead of lab tomorrow morning mp3 released tonight, mp3.1 extra
More information16. Dynamic Data Structures
Data Structures 6. Dynamic Data Structures A data structure is a particular way of organizing data in a computer so that it can be used efficiently Linked lists, Abstract data types stack, queue, Sorted
More informationChapter 17: Linked Lists
Chapter 17: Linked Lists Copyright 2009 Pearson Education, Inc. Copyright Publishing as Pearson 2009 Pearson Addison-Wesley Education, Inc. Publishing as Pearson Addison-Wesley 17.1 Introduction to the
More informationContainers: Stack. Jordi Cortadella and Jordi Petit Department of Computer Science
Containers: Stack Jordi Cortadella and Jordi Petit Department of Computer Science The Stack ADT A stack is a list of objects in which insertions and deletions can only be performed at the top of the list.
More informationData Structures. Alice E. Fischer. Lecture 4, Fall Alice E. Fischer Data Structures L4... 1/19 Lecture 4, Fall / 19
Data Structures Alice E. Fischer Lecture 4, Fall 2018 Alice E. Fischer Data Structures L4... 1/19 Lecture 4, Fall 2018 1 / 19 Outline 1 Ordered Lists 2 Sorted Lists Tail Pointers 3 Doubly Linked Lists
More information1 #include <iostream> 2 using namespace std; 3 4 // implementing the dynamic List ADT using Linked List 5 6 class Node{ 7 8 private: 9 int data; 10
1 #include 2 using namespace std; 3 4 // implementing the dynamic List ADT using Linked List 5 6 class Node{ 7 8 private: 9 int data; 10 Node* nextnodeptr; 11 12 public: 13 Node(){} 14 15 void
More informationAssignment of Objects
Copying Objects 1 Assignment of Objects 2 Slides 1. Table of Contents 2. Assignment of Objects 3. Dynamic Content 4. Shallow Copying 5. Deep Copying 6. this Pointer 7. Improved Deep Copy 8. Passing an
More informationContainers: Stack. The Stack ADT. The Stack ADT. The Stack ADT
Containers: Stack The Stack ADT A stack is a list of objects in which insertions and deletions can only be performed at the top of the list. Also known as LIFO Last In, First Out) push insert an element
More informationC++ For Science and Engineering Lecture 27
C++ For Science and Engineering Lecture 27 John Chrispell Tulane University Monday November 1, 2010 Classes and the This pointer Every C++ object has a curious pointer called this. If we want to extend
More informationCS350: Data Structures Stacks
Stacks James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Stacks Stacks are a very common data structure that can be used for a variety of data storage
More informationvoid insert( Type const & ) void push_front( Type const & )
6.1 Binary Search Trees A binary search tree is a data structure that can be used for storing sorted data. We will begin by discussing an Abstract Sorted List or Sorted List ADT and then proceed to describe
More informationCS24 Week 4 Lecture 2
CS24 Week 4 Lecture 2 Kyle Dewey Overview Linked Lists Stacks Queues Linked Lists Linked Lists Idea: have each chunk (called a node) keep track of both a list element and another chunk Need to keep track
More informationLinked Lists. Linked list: a collection of items (nodes) containing two components: Data Address (link) of the next node in the list
Linked Lists Introduction : Data can be organized and processed sequentially using an array, called a sequential list Problems with an array Array size is fixed Unsorted array: searching for an item is
More informationdouble d0, d1, d2, d3; double * dp = new double[4]; double da[4];
All multiple choice questions are equally weighted. You can generally assume that code shown in the questions is intended to be syntactically correct, unless something in the question or one of the answers
More informationMidterm Examination. Instructor: Gary Chan Date: Saturday, 23 October 2010 Time: 2:30pm 4:00pm Venue: LTC
THE HONG KONG UNIVERSITY OF SCIENCE & TECHNOLOGY Department of Computer Science & Engineering COMP 152: Object-Oriented Programming and Data Structures Fall 2010 Midterm Examination Instructor: Gary Chan
More informationLinked Lists. Linked list: a collection of items (nodes) containing two components: Data Address (link) of the next node in the list
Linked Lists Introduction : Data can be organized and processed sequentially using an array, called a sequential list Problems with an array Array size is fixed Unsorted array: searching for an item is
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 07: Linked Lists and Iterators MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Linked Lists 2 Introduction Linked List Abstract Data Type General Implementation of the ListADT
More informationAn Introduction to Queues With Examples in C++
An Introduction to Queues With Examples in C++ Prof. David Bernstein James Madison University Computer Science Department bernstdh@jmu.edu Motivation Queues are very straightforward but are slightly more
More informationBEng (Hons) Electronic Engineering. BEng (Hons) Telecommunications. Examinations for / Semester 2
BEng (Hons) Electronic Engineering BEng (Hons) Telecommunications Cohort: BEE/16B/FT & BTEL/16B/FT Examinations for 2016-2017 / Semester 2 Resit Examinations for BTEL/15B/FT, BEE/13B/FT, BTEL/14B/FT &
More informationCSE 143. Linked Lists. Linked Lists. Manipulating Nodes (1) Creating Nodes. Manipulating Nodes (3) Manipulating Nodes (2) CSE 143 1
CSE 143 Linked Lists [Chapter 4; Chapter 6, pp. 265-271] Linked Lists A linked list is a collection of dynamically allocated nodes Each node contains at least one member (field) that points to another
More informationCS 115 Exam 3, Spring 2010
Your name: Rules You must briefly explain your answers to receive partial credit. When a snippet of code is given to you, you can assume o that the code is enclosed within some function, even if no function
More information