Stack. The Stack stores arbitrary objects Insertions and deletions follow the last-in firstout
|
|
- Joseph Richard
- 5 years ago
- Views:
Transcription
1 Stack The Stack stores arbitrary objects Insertions and deletions follow the last-in firstout scheme Think of a spring-loaded plate dispenser Main stack operations: push(element elm): inserts an element Element pop(): removes the last inserted element Auxiliary stack operations: Element top(): returns the last inserted element without removing it integer size(): returns the number of elements stored boolean empty(): indicates whether no elements are stored 9-32
2 Applications of Stacks Direct applications Page-visited history in a Web browser (e.g., keeping recently visited web site URLs) Undo sequence in a text editor Chain of method calls in the C++ run-time system Indirect applications Auxiliary data structure for algorithms Stack is used as a component of other data structures 9-33
3 Array 기반의 Stack 구현 /* Stack with Array (1) */ #include <stdio.h> #include <stdlib.h> typedef int Elm_t; typedef struct stack Elm_t *pbuffer; int max_size; int stacktop; Stack; int initstack(stack *ps, int size); void pushstack(stack *ps, Elm_t data); Elm_t popstack(stack *ps); void printstack(stack *ps); void main() Stack stack; initstack(&stack, 10); printf("after initialization of stack n"); printstack(&stack); /* Stack with Array (2) */ 9-34 for (int i = 0; i < 10; i++) pushstack(&stack, i); printf("push (%2d) n", i); printstack(&stack); for (int i = 0; i < 10; i++) data = popstack(&stack); printf("pop (%2d) n", data); printstack(&stack); int initstack(stack *ps, int size) ps->max_size = size; ps->stacktop = -1; ps->pbuffer = (Elm_t*)malloc(sizeof(Elm_t)* size); if (ps->pbuffer == NULL) return -1; else return size;
4 /* Stack with Array (3) */ void pushstack(stack *ps, Elm_t data) if (ps->stacktop >= ps->max_size) printf("exception::stack is Full!! - no push operation n"); return; ps->stacktop++; ps->pbuffer[ps->stacktop] = data; Elm_t popstack(stack *ps) if (ps->stacktop < 0) printf("exception::stack is Empty!! - no pop operation n"); return -1; data = ps->pbuffer[ps->stacktop]; ps->stacktop--; return data; 9-35
5 /* Stack with Array (4) */ void printstack(stack *ps) if (ps->stacktop < 0) printf("exception::stack is Empty!! n"); return; printf("current stack (size: %2d) : ", ps->stacktop + 1); for (int i = ps->stacktop; i >= 0; i--) data = ps->pbuffer[i]; printf("%d, ", data); printf(" n"); 9-36
6 Linked List 기반의 Stack 구현 /* Stack based on Linked List (1) */ #include <stdio.h> #include <stdlib.h> typedef int Elm_t; typedef struct listnode struct listnode *prev; struct listnode *next; ListNode; typedef struct liststack ListNode *stacktop; int size; ListStack; void initstack(liststack *ps, int size); void pushstack(liststack *ps, Elm_t data); Elm_t popstack(liststack *ps); void printstack(liststack *ps); /* Stack based on Linked List (2) */ void main() ListStack stack; initstack(&stack, 10); printf("after initialization of stack n"); printstack(&stack); for (int i = 0; i < 10; i++) pushstack(&stack, i); printf("push (%2d) n", i); printstack(&stack); for (int i = 0; i < 10; i++) data = popstack(&stack); printf("pop (%2d) n", data); printstack(&stack); 9-37
7 /* Stack based on Linked List (3) */ void initstack(liststack *ps, int size) ps->stacktop = NULL; ps->size = 0; void pushstack(liststack *ps, Elm_t data) ListNode *pnewln; pnewln = (ListNode *)malloc(sizeof(listnode)); pnewln->data = data; pnewln->prev = NULL; if (ps->size == 0) ps->stacktop = pnewln; ps->stacktop->next = NULL; else pnewln->next = ps->stacktop; ps->stacktop->prev = pnewln; ps->stacktop = pnewln; ps->size++; /* Stack based on Linked List (4) */ Elm_t popstack(liststack *ps) if (ps->size <= 0) printf("exception::stack is Empty!! no pop operation n"); return -1; data = ps->stacktop->data; ListNode *pln = ps->stacktop; ps->stacktop = ps->stacktop->next; if (ps->stacktop!= NULL) // when the last //ListNode is deleted, skip next statement ps->stacktop->prev = NULL; ps->size--; free(pln); return data; 9-38
8 /* Stack based on Linked List (5) */ void printstack(liststack *ps) if (ps->size <= 0) printf("exception::stack is Empty!! n"); return; printf("current stack (size: %2d) : ", ps->size); ListNode *pln = ps->stacktop; for (int i = 0; i < ps->size; i++) data = pln->data; printf("%d, ", data); pln = pln->next; printf(" n"); 9-39
9 Queues The Queue stores arbitrary objects Insertions and deletions follow the first-in first-out (FIFO) scheme Insertions are at the rear of the queue and removals are at the front of the queue Main queue operations: enqueue(object): inserts an element at the end of the queue dequeue(): removes the element at the front of the queue Auxiliary queue operations: object front(): returns the element at the front without removing it integer size(): returns the number of elements stored boolean empty(): indicates whether no elements are stored Exceptions Attempting the execution of dequeue or front on an empty queue throws an QueueEmpty 9-40
10 Array 기반의 Queue 구현 /* Queue based on Array (1) */ #include <stdio.h> #include <stdlib.h> typedef int Elm_t; typedef struct Queue Elm_t *pbuffer; int max_size; int front; int end; int size; Queue; int initqueue(queue *pq, int size); void enqueue(queue *pq, Elm_t data); Elm_t dequeue(queue *pq); void printqueue(queue *pq); void main() Queue queue; initqueue(&queue, 10); printf("after initialization of queue n"); Yeungnam printqueue(&queue); University (yuantl) /* Queue based on Array (2) */ for (int i = 0; i < 10; i++) enqueue(&queue, i); printf("enqueue (%2d) n", i); printqueue(&queue); for (int i = 0; i < 10; i++) data = dequeue(&queue); printf("dequeue (%2d) n", data); printqueue(&queue); int initqueue(queue *pq, int Qsize) pq->max_size = Qsize; pq->size = 0; pq->front = pq->end = 0; pq->pbuffer = (Elm_t*)malloc(sizeof(Elm_t)* Qsize); if (pq->pbuffer == NULL) return -1; else return Qsize; 9-41
11 /* Queue based on Array (3) */ void enqueue(queue *pq, Elm_t data) if (pq->size >= pq->max_size) printf("exception::queue is Full!! - no enque operation n"); return; pq->pbuffer[pq->end] = data; pq->size++; pq->end = (pq->end + 1) % pq->max_size; // circular queue Elm_t dequeue(queue *pq) if (pq->size <= 0) printf("exception::queue is Empty!! - no deque operation n"); return -1; data = pq->pbuffer[pq->front]; pq->size--; pq->front = (pq->front+1) % pq->max_size; return data; 9-42
12 /* Queue based on Array (4) */ void printqueue(queue *pq) if (pq->size <= 0) printf("exception::queue is Empty!! n"); return; printf("current queue (size: %2d) : ", pq->size); int j = pq->front; for (int i = 0; i < pq->size; i++) data = pq->pbuffer[j]; printf("%d, ", data); j = (j + 1) % pq->max_size; printf(" n"); 9-43
13 /* Queue based on Linked List (1) */ #include <stdio.h> #include <stdlib.h> typedef int Elm_t; typedef struct listnode struct listnode *prev; struct listnode *next; ListNode; typedef struct ListQueue ListNode *front; ListNode *end; int size; ListQueue; Linked List 기반의 Queue 구현 void initqueue(listqueue *pq); void enqueue(listqueue *pq, Elm_t data); Elm_t dequeue(listqueue *pq); void printqueue(listqueue *pq); 9-44 /* Queue based on Linked List (2) */ void main() ListQueue queue; initqueue(&queue); printf("after initialization of queue n"); printqueue(&queue); for (int i = 0; i < 10; i++) enqueue(&queue, i); printf("enqueue (%2d) n", i); printqueue(&queue); for (int i = 0; i < 10; i++) data = dequeue(&queue); printf("dequeue (%2d) n", data); printqueue(&queue); void initqueue(listqueue *pq) pq->size = 0; pq->front = pq->end = NULL;
14 /* Queue based on Linked List (3) */ void enqueue(listqueue *pq, Elm_t data) ListNode *pnewln; pnewln = (ListNode *)malloc(sizeof(listnode)); pnewln->data = data; pnewln->next = NULL; if (pq->size == 0) pnewln->prev = NULL; pq->front = pq->end = pnewln; else pnewln->prev = pq->end; pq->end->next = pnewln; pq->end = pnewln; pq->size++; /* Queue based on Linked List (4) */ Elm_t dequeue(listqueue *pq) if (pq->size <= 0) printf("exception::queue is Empty!! - no deque operation n"); return -1; data = pq->front->data; pq->size--; ListNode *pln = pq->front; pq->front = pq->front->next; free(pln); return data; 9-45
15 /* Queue based on Linked List (5) */ void printqueue(listqueue *pq) if (pq->size <= 0) printf("exception::queue is Empty!! n"); return; printf("current queue (size: %2d) : ", pq->size); ListNode *pln = pq->front; for (int i = 0; i < pq->size; i++) data = pln->data; printf("%d, ", data); pln = pln->next; printf(" n"); 9-46
16 Queue 의응용 (1) 패킷통신시스템의큐 패킷데이터통신시스템에서의입력 / 출력 Queue queue: first come, first served put (insert) a newly arrived packet in the tail of the queue ge the packet at the head of the queue remove (delete) the acknowledged packet from the queue Packet Queue Packet input (insert at tail) Packet transmit (get/remove from head) 9-47
17 Queue 의응용 (2) - Round Robin Schedulers We can implement a round robin scheduler using a queue Q by repeatedly performing the following steps: 1. e = Q.front(); Q.dequeue() 2. Service element e 3. Q.enqueue(e) Queue Dequeue Enqueue Shared Service 9-48
18 Homework 연결리스트를이용한 Galaxy 구현 (1) 구조체 struct Star 는데이터멤버 (data members) 로 string starname, int starid, double distance, double luminosity, double mass, double radius, int age 과함께이중연결리스트구성을위한두개의포인터 (Star *pprev, Star *pnext) 를가진다. starid 는중복되지않는값으로지정되어야한다. (2) 구조체 struct Galaxy 는데이터멤버로 string glxyname, int numstar 과함께 Star 구조체의이중연결리스트를가리키기위한두개의포인터 (Star *pfirst, Star *plast) 를가진다. 이구조체 struct Galaxy 를사용하는함수는다음과같다 : Star * genstar(int id) : 하나의 star 를동적으로생성하며, star 의데이터멤버들을랜덤함수를사용하여임의의값으로초기화한후, 생성된 star 의주소를반환한다. starid 는중복되지않는값으로 e 전달되는값을사용하여야하며, starname 은알파벳 a ~ z 5 ~ 10 자로구성된다. 데이터멤버 distance, luminosity, mass, radius 및 age 는 10.0 ~ 범위의값을임의로가진다. printgalaxy(galaxy *pglx) : 이중연결리스트로구성된 Galaxy 에포함된 star 들의 starname, stari d 를순서대로 ( 첫번째 (head) 노드부터마지막 (tail) 노드까지 ) 출력한다. insertnodeattail(galaxy *pglx, Star *ps) : 하나의 star 를이중연결리스트의마지막위치 (tail) 에추가한다. insertnodeinorder(galaxy *pglx, Star *ps) : 하나의 star 를이중연결리스트의 starid 의오름차순순서에맞는위치에삽입한다. Star *getfromhead(galaxy *pglx) : 이중연결리스트의맨처음노드의주소값을반환한다. 이연산에서는헤더노드를삭제하지는않는다. Star *removefromhead(galaxy *pglx) : 이중연결리스트의맨처음노드 (head) 를삭제한다. (3) 각구조체정의는별도의헤더파일에구현되어야한다 : MyStar.h, MyGalaxy.h. 9-49
19 (4) 다음내용을포함하는 main() 함수를사용할것 : // Standard comments for source code #include MyStar.h #include MyGalaxy.h... #define NUM_STARS void main() Galaxy *pglx; Star *pnew; int *starid; pglx = (Galaxy *) malloc(sizeof(galaxy)); pglx->pfirst = NULL; pglx->plast = NULL; pglx->numstar = 0; starid = (int *)malloc(sizeof(int) * NUM_STARS); genbigrandarray(starid, NUM_STARS); for (int i=0; i<num_stars; i++) pnew = genstar(starid[i]); insertnodeinorder(pglx, pnew); printf( Galaxy after insertnodeinorder(id: %d) n, ps->id); printgalaxy(pglx); 9-50
20 for (i=0; i<num_stars; i++) ps = removefromhead(pglx); if (ps!= NULL) printf(" Node (id: %d) removed from list head n, ps->id); printf( Galaxy after node remove from head: n ); printgalaxy(pglx); free(ps); ps = getfromhead(pglx); if (ps!= NULL) printf(" New head in list of Galaxy: %d n, ps->id); free (pglx); 9-51
Queues. A queue is a special type of structure that can be used to maintain data in an organized way.
A queue is a special type of structure that can be used to maintain data in an organized way. This data structure is commonly implemented in one of two ways: as an array or as a linked list. In either
More informationPROGRAMMAZIONE I A.A. 2017/2018
PROGRAMMAZIONE I A.A. 2017/2018 LINKED LISTS LINKED LIST What are the problems with arrays? üsize is fixed üarray items are stored contiguously üinsertions and deletions at particular positions is complex
More informationcsci 210: Data Structures Stacks and Queues
csci 210: Data Structures Stacks and Queues 1 Summary Topics Stacks and Queues as abstract data types ( ADT) Implementations arrays linked lists Analysis and comparison Applications: searching with stacks
More informationYour Topic Goes Here Queue
Your Subtopics Go Here Your Topic Goes Here Queue Compiled By: Kiran Joshi 1 Queue Roadmap. 1. Definition 2. Queue examples 3. Working of Queue 4. Applications 2 Definition * A data structure of ordered
More informationCS6202 - PROGRAMMING & DATA STRUCTURES I Unit IV Part - A 1. Define Stack. A stack is an ordered list in which all insertions and deletions are made at one end, called the top. It is an abstract data type
More information.:: UNIT 4 ::. STACK AND QUEUE
.:: UNIT 4 ::. STACK AND QUEUE 4.1 A stack is a data structure that supports: Push(x) Insert x to the top element in stack Pop Remove the top item from stack A stack is collection of data item arrange
More informationLecture 7: Data Structures. EE3490E: Programming S1 2017/2018 Dr. Đào Trung Kiên Hanoi Univ. of Science and Technology
Lecture 7: Data Structures 1 Introduction: dynamic array Conventional array in C has fix number of elements Dynamic array is array with variable number of elements: actually a pointer and a variable indicating
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 informationStacks Goodrich, Tamassia, Goldwasser Stacks
Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Stacks Stacks 1 The Stack ADT The Stack ADT
More informationInsertions and removals follow the Fist-In First-Out rule: Insertions: at the rear of the queue Removals: at the front of the queue
Queues CSE 2011 Fall 2009 9/28/2009 7:56 AM 1 Queues: FIFO Insertions and removals follow the Fist-In First-Out rule: Insertions: at the rear of the queue Removals: at the front of the queue Applications,
More information15. Stacks and Queues
COMP1917 15s2 15. Stacks and Queues 1 COMP1917: Computing 1 15. Stacks and Queues Reading: Moffat, Section 10.1-10.2 Overview Stacks Queues Adding to the Tail of a List Efficiency Issues Queue Structure
More informationLinked Structures. See Section 3.2 of the text.
Linked Structures See Section 3.2 of the text. First, notice that Java allows classes to be recursive, in the sense that a class can have an element which is itself an object of that class: class Person
More information1/18/12. Chapter 5: Stacks, Queues and Deques. Stacks. Outline and Reading. Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University
Chapter 5: Stacks, ueues and Deques Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich,
More informationDataStruct 5. Stacks, Queues, and Deques
2013-2 DataStruct 5. Stacks, Queues, and Deques Michael T. Goodrich, et. al, Data Structures and Algorithms in C++, 2 nd Ed., John Wiley & Sons, Inc., 2011. October 30, 2013 Advanced Networking Technology
More informationAssignment 1. Check your mailbox on Thursday! Grade and feedback published by tomorrow.
Assignment 1 Check your mailbox on Thursday! Grade and feedback published by tomorrow. COMP250: Queues, deques, and doubly-linked lists Lecture 20 Jérôme Waldispühl School of Computer Science McGill University
More informationInformation Science 2
Information Science 2 - Basic Data Structures- Week 02 College of Information Science and Engineering Ritsumeikan University Today s class outline l Basic data structures: Definitions and implementation
More informationQueues COL 106. Slides by Amit Kumar, Shweta Agrawal
Queues COL 106 Slides by Amit Kumar, Shweta Agrawal The Queue ADT The Queue ADT stores arbitrary objects Insertions and deletions follow the first-in first-out (FIFO) scheme Insertions are at the rear
More informationLinked List. April 2, 2007 Programming and Data Structure 1
Linked List April 2, 2007 Programming and Data Structure 1 Introduction head A linked list is a data structure which can change during execution. Successive elements are connected by pointers. Last element
More informationStacks and Queues. CSE Data Structures April 12, 2002
Stacks and Queues CSE 373 - Data Structures April 12, 2002 Readings and References Reading Section 3.3 and 3.4, Data Structures and Algorithm Analysis in C, Weiss Other References 12-Apr-02 CSE 373 - Data
More informationQueues. October 20, 2017 Hassan Khosravi / Geoffrey Tien 1
Queues October 20, 2017 Hassan Khosravi / Geoffrey Tien 1 Queue ADT Queue ADT should support at least the first two operations: enqueue insert an item to the back of the queue dequeue remove an item from
More informationKeeping Order:! Stacks, Queues, & Deques. Travis W. Peters Dartmouth College - CS 10
Keeping Order:! Stacks, Queues, & Deques 1 Stacks 2 Stacks A stack is a last in, first out (LIFO) data structure Primary Operations: push() add item to top pop() return the top item and remove it peek()
More informationOutline and Reading. The Stack ADT ( 4.2.1) Applications of Stacks ( 4.2.3) Array-based implementation ( 4.2.2) Growable array-based stack.
Stacks Outline and Reading The Stack ADT ( 4.2.1) Applications of Stacks ( 4.2.3) Array-based implementation ( 4.2.2) Growable array-based stack Stacks 2 Abstract Data Types (ADTs) An abstract data type
More informationData Structures and Algorithms. Chapter 5. Dynamic Data Structures and Abstract Data Types
1 Data Structures and Algorithms Chapter 5 and Abstract Data Types Werner Nutt 2 Acknowledgments The course follows the book Introduction to Algorithms, by Cormen, Leiserson, Rivest and Stein, MIT Press
More informationChapter 9 STACK, QUEUE
Chapter 9 STACK, QUEUE 1 LIFO: Last In, First Out. Stacks Restricted form of list: Insert and remove only at front of list. Notation: Insert: PUSH Remove: POP The accessible element is called TOP. Stack
More informationCH ALGORITHM ANALYSIS CH6. STACKS, QUEUES, AND DEQUES
CH4.2-4.3. ALGORITHM ANALYSIS CH6. STACKS, QUEUES, AND DEQUES ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN JAVA, GOODRICH, TAMASSIA AND GOLDWASSER
More informationApplied Programming and Computer Science, DD2325/appcs15 PODF, Programmering och datalogi för fysiker, DA7011
Applied Programming and Computer Science, DD2325/appcs15 PODF, Programmering och datalogi för fysiker, DA7011 Autumn 2015 Lecture 5, C programming: Abstract Data Types A. Maki, C. Edlund Abstract Data
More informationFoundations of Data Structures
Foundations of Data Structures Lecture 4 Elementary Abstract Data Types (ADT): Stack Queue 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies:
More informationUNIT-2 Stack & Queue
UNIT-2 Stack & Queue 59 13. Stack A stack is an Abstract Data Type (ADT), commonly used in most programming languages. It is named stack as it behaves like a real-world stack, for example a deck of cards
More informationDiscussion 2C Notes (Week 3, January 21) TA: Brian Choi Section Webpage:
Discussion 2C Notes (Week 3, January 21) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs32 Abstraction In Homework 1, you were asked to build a class called Bag. Let
More informationDepartment of Computer Science & Engineering Indian Institute of Technology Kharagpur. Practice Sheet #13
Department of Computer Science & Engineering Indian Institute of Technology Kharagpur Topic: Stack and Queue Practice Sheet #13 Date: 04-04-2017 1. Consider the following sequence of push and pop operations
More information(6-1) Basics of a Queue. Instructor - Andrew S. O Fallon CptS 122 (September 26, 2018) Washington State University
(6-1) Basics of a Queue Instructor - Andrew S. O Fallon CptS 122 (September 26, 2018) Washington State University What is a Queue? 2 A linear data structure with a finite sequence of nodes, where nodes
More informationADVANCED DATA STRUCTURES USING C++ ( MT-CSE-110 )
ADVANCED DATA STRUCTURES USING C++ ( MT-CSE-110 ) Unit - 2 By: Gurpreet Singh Dean Academics & H.O.D. (C.S.E. / I.T.) Yamuna Institute of Engineering & Technology, Gadholi What is a Stack? A stack is a
More informationOutline and Reading. The Stack ADT ( 2.1.1) Applications of Stacks ( 2.1.1) Array-based implementation ( 2.1.1) Growable array-based stack ( 1.
Stacks Outline and Reading The Stack ADT ( 2.1.1) Applications of Stacks ( 2.1.1) Array-based implementation ( 2.1.1) Growable array-based stack ( 1.5) Stacks 2 Abstract Data Types (ADTs) An abstract data
More informationCS 2412 Data Structures. Chapter 9 Graphs
CS 2412 Data Structures Chapter 9 Graphs Some concepts A graph consists of a set of vertices and a set of lines (edges, arcs). A directed graph, or digraph, is a graph in which each line has a direction.
More informationLinear Structures. Linear Structure. Implementations. Array details. List details. Operations 4/18/2013
Linear Structure Linear Structures Chapter 4 CPTR 318 Every non-empty linear structure has A unique element called first A unique element called last Every element except last has a unique successor Every
More informationLecture 3: Stacks & Queues
Lecture 3: Stacks & Queues Prakash Gautam https://prakashgautam.com.np/dipit02/ info@prakashgautam.com.np 22 March, 2018 Objectives Definition: Stacks & Queues Operations of Stack & Queues Implementation
More informationWhere does the insert method place the new entry in the array? Assume array indexing starts from 0(zero).
Suppose we have a circular array implementation of the queue,with ten items in the queue stored at data[2] through data[11]. The current capacity of an array is 12. Where does the insert method place the
More informationHOWDY! WELCOME TO CSCE 221 DATA STRUCTURES AND ALGORITHMS
HOWDY! WELCOME TO CSCE 221 DATA STRUCTURES AND ALGORITHMS SYLLABUS ABSTRACT DATA TYPES (ADTS) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations
More informationData Structures Lecture 5
Fall 2017 Fang Yu Software Security Lab. Dept. Management Information Systems, National Chengchi University Data Structures Lecture 5 Announcement Project Proposal due on Nov. 9 Remember to bring a hardcopy
More informationStacks and Queues. Stack - Abstract Data Type. Stack Applications. Stack - Abstract Data Type - C Interface
Stacks and Queues Stack - Abstract Data Type. Stacks and queues ubiquitous -structure in computing. Part of many important algorithms. Good example of abstract types. Good example to practice programming
More informationList, Stack and Queue Implementation
Roy Chan CSC2100B Data Structures Tutorial 2 (Version 2) January 21, 2009 1 / 39 1 CSC2100B Online Judge Score 2 Structure 3 Linked List Overview Implementation 4 Stack Overview Implementation 5 Queue
More informationCMPT 125: Practice Midterm Answer Key
CMPT 125, Spring 2017, Surrey Practice Midterm Answer Key Page 1 of 6 CMPT 125: Practice Midterm Answer Key Linked Lists Suppose you have a singly-linked list whose nodes are defined like this: struct
More informationCS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0)
CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) An interesting definition for stack element The stack element could be of any data type struct stackelement int etype; union int ival;
More informationLinear Structures. Linear Structure. Implementations. Array details. List details. Operations 2/10/2013
Linear Structure Linear Structures Chapter 4 CPTR 318 Every non-empty linear structure has A unique element called first A unique element called last Every element except last has a unique successor Every
More informationQueue: Queue Representation: Basic Operations:
Queue: Queue is an abstract data structure, somewhat similar to Stacks. Unlike stacks, a queue is open at both its ends. One end is always used to insert data (enqueue) and the other is used to remove
More informationNo Aids Allowed. Do not turn this page until you have received the signal to start.
CSC 148H Midterm Fall 2007 St. George Campus Duration 50 minutes Student Number: Family Name: Given Name: No Aids Allowed. Do not turn this page until you have received the signal to start. # 1: /10 #
More informationSolution for Data Structure
Solution for Data Structure May 2016 INDEX Q1 a 2-3 b 4 c. 4-6 d 7 Q2- a 8-12 b 12-14 Q3 a 15-18 b 18-22 Q4- a 22-35 B..N.A Q5 a 36-38 b N.A Q6- a 39-42 b 43 1 www.brainheaters.in Q1) Ans: (a) Define ADT
More informationData Structures. Lecture 5 : The Queues
0 Data Structures Lecture 5 : Dr. Essam Halim Houssein Lecturer, Faculty of Computers and Informatics, Benha University http://bu.edu.eg/staff/esamhalim14 2 A queue is logically a first in first out (FIFO
More informationDS L9: Queues
Indian Institute of Science Bangalore, India भ रत य व ज ञ न स स थ न ब गल र, भ रत Department of Computational and Data Sciences DS286 2016-09-09 L9: Queues Yogesh Simmhan s i m m h a n @ c d s. i i s c.
More informationStack. Data structure with Last-In First-Out (LIFO) behavior. Out
Stack and Queue 1 Stack Data structure with Last-In First-Out (LIFO) behavior In Out C B A B C 2 Typical Operations Pop on Stack Push isempty: determines if the stack has no elements isfull: determines
More informationActually, C provides another type of variable which allows us to do just that. These are called dynamic variables.
When a program is run, memory space is immediately reserved for the variables defined in the program. This memory space is kept by the variables until the program terminates. These variables are called
More informationProgramming. Lists, Stacks, Queues
Programming Lists, Stacks, Queues Summary Linked lists Create and insert elements Iterate over all elements of the list Remove elements Doubly Linked Lists Circular Linked Lists Stacks Operations and implementation
More informationNo Aids Allowed. Do not turn this page until you have received the signal to start.
CSC 148H Midterm Fall 2007 St. George Campus Duration 50 minutes Student Number: Family Name: Given Name: No Aids Allowed. Do not turn this page until you have received the signal to start. # 1: /10 #
More informationFIFO Queues. CSE 2320 Algorithms and Data Structures Vassilis Athitsos University of Texas at Arlington
FIFO Queues CSE 2320 Algorithms and Data Structures Vassilis Athitsos University of Texas at Arlington 1 FIFO Queues Stacks are lastin firstout queues. Another widely used model is firstin firstout (FIFO)
More informationUNIT 3: QUEUE Programs demonstrated in class. Tojo Mathew Asst. Professor CSE Dept., NIE Mysuru.
UNIT 3: QUEUE Programs demonstrated in class. Tojo Mathew Asst. Professor CSE Dept., NIE Mysuru. Table of Contents 1. Simple Queue Implementation with arrays...3 2. Circular queue with global container
More information#06 More Structures LIFO FIFO. Contents. Queue vs. Stack 3. Stack Operations. Pop. Push. Stack Queue Hash table
Contents #06 More Structures -07 FUNDAMENTAL PROGRAMMING I Stack Queue Hash table DEPARTMENT OF COMPUTER ENGINEERING, PSU v. Queue vs. Stack Stack Operations IN IN OUT Push: add an item to the top Pop:
More informationStacks and Queues. CSE 373 Data Structures Lecture 6
Stacks and Queues CSE 373 Data Structures Lecture 6 Readings and References Reading Sections 3.3 and 3.4 10/11/02 Stacks and Queues - Lecture 6 2 Stacks A list for which Insert and Delete are allowed only
More informationData Structures and Algorithms. Roberto Sebastiani
Data Structures and Algorithms Roberto Sebastiani roberto.sebastiani@disi.unitn.it http://www.disi.unitn.it/~rseba - Week 05 - B.S. In Applied Computer Science Free University of Bozen/Bolzano academic
More informationHow to Win Coding Competitions: Secrets of Champions. Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue.
How to Win Coding Competitions: Secrets of Champions Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue. Deque Pavel Krotkov Saint Petersburg 2016 General overview Stack,
More information: Principles of Imperative Computation, Spring Homework 3 Theory [Update 1]
15-122 Homework 3 Page 1 of 15 15-122 : Principles of Imperative Computation, Spring 2013 Homework 3 Theory [Update 1] Due: Thursday, February 21, 2013, at the beginning of lecture Name: Andrew ID: Recitation:
More informationCPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues
CPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 is available.
More informationCS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0)
CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) The queue ADT A queue is like a "natural" queue of elements. It is an ordered list in which all insertions occur at one end called
More informationCSE 373 Data Structures and Algorithms. Lecture 2: Queues
CSE 373 Data Structures and Algorithms Lecture 2: Queues Queue ADT queue: A list with the restriction that insertions are done at one end and deletions are done at the other First-In, First-Out ("FIFO
More informationData Structures and Algorithms (DSA) Course 6 Lists (Recapitulation) Iulian Năstac
Data Structures and Algorithms (DSA) Course 6 Lists (Recapitulation) Iulian Năstac Recapitulation Operations related to a linked list: a) creation of a linked list; b) access to any node of the list; c)
More informationAbstract Data Type: Stack
Abstract Data Type: Stack Stack operations may involve initializing the stack, using it and then de-initializing it. Apart from these basic stuffs, a stack is used for the following two primary operations
More informationCh02 Data Structures
Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Ch02 Data Structures xkcd Seven http://xkcd.com/1417/ Used with permission under
More informationCPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues
CPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 available very
More informationCS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-0-0)
CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-0-0) Class Teacher: Pralay Mitra Department of Computer Science and Engineering Indian Institute of Technology Kharagpur Conceptual Idea
More informationCh02 Data Structures
Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Ch02 Data Structures xkcd Seven http://xkcd.com/1417/ Used with permission under
More informationDATA STRUCUTRES. A data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.
DATA STRUCUTRES A data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently. An algorithm, which is a finite sequence of instructions, each of which
More information03/29/2004. A dispenser has three essential features: adding, removing, accessing. Dispensers
Dispensers stacks queues priority queues Dictionaries A dispenser is a container that restricts access to its elements. Only one element in the container can be accessed or removed. This element is called
More informationElementary Data Structures. Stacks, Queues, & Lists Amortized analysis Trees
Elementary Data Structures Stacks, Queues, & Lists Amortized analysis Trees The Stack ADT ( 2.1.1) The Stack ADT stores arbitrary objects Insertions and deletions follow the last-in first-out scheme Think
More informationESc101: (Linear, Circular, Doubly) Linked Lists, Stacks, Queues, Trees. Introduction to Linked Lists
ESc101: (Linear, Circular, Doubly) Linked Lists, Stacks, Queues, Trees Instructor: Krithika Venkataramani Semester 2, 2011-2012 1 Introduction to Linked Lists Each bead connected to the next through a
More informationYou must include this cover sheet. Either type up the assignment using theory4.tex, or print out this PDF.
15-122 Assignment 4 Page 1 of 12 15-122 : Principles of Imperative Computation Fall 2012 Assignment 4 (Theory Part) Due: Thursday, October 18, 2012 at the beginning of lecture Name: Andrew ID: Recitation:
More informationLecture Data Structure Stack
Lecture Data Structure Stack 1.A stack :-is an abstract Data Type (ADT), commonly used in most programming languages. It is named stack as it behaves like a real-world stack, for example a deck of cards
More informationfinal int a = 10; for(int i=0;i<a;i+=2) { for(int j=i;j<a;j++) { System.out.print("*"); } System.out.println(); }
CSCE 146 Exam 1 Review Part 1 Java Review This part went over the basics of Java, and the focus was mostly on arrays. There will be no questions that involve reading from and writing to files. Short Answer
More informationChapter 18: Stacks And Queues
Chapter 18: Stacks And Queues 18.1 Introduction to the Stack ADT Introduction to the Stack ADT Stack: a LIFO (last in, first out) data structure Examples: plates in a cafeteria return addresses for function
More information1 P age DS & OOPS / UNIT II
UNIT II Stacks: Definition operations - applications of stack. Queues: Definition - operations Priority queues - De que Applications of queue. Linked List: Singly Linked List, Doubly Linked List, Circular
More informationAbstract Data Types. Abstract Data Types
Abstract Data Types Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Wolfgang.Schreiner@risc.jku.at http://www.risc.jku.at Wolfgang Schreiner
More informationData Structures. Lecture 4 : The Queues. Dr. Essam Halim Houssein Lecturer, Faculty of Computers and Informatics, Benha University
0 Data Structures Lecture 4 : Dr. Essam Halim Houssein Lecturer, Faculty of Computers and Informatics, Benha University 2 A queue is logically a first in first out (FIFO or first come first serve) linear
More informationCircular Queue can be created in three ways they are: Using single linked list Using double linked list Using arrays
Circular Queue: Implementation and Applications In linear queue, when we delete any element, only front increment by one but position is not used later. So, when we perform more add and delete operations,
More informationStacks (5.1) Abstract Data Types (ADTs) CSE 2011 Winter 2011
Stacks (5.1) CSE 2011 Winter 2011 26 January 2011 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations on the data Error
More informationQueues Fall 2018 Margaret Reid-Miller
Queues 15-121 Fall 2018 Margaret Reid-Miller Today Exam 2 is next Tuesday, October 30 Writing methods various classes that implement Lists. Methods using Lists and Big-O w/ ArrayList or LinkedLists Prove
More informationLecture 3 Linear Data Structures: Arrays, Array Lists, Stacks, Queues and Linked Lists
Lecture 3 Linear Data Structures: Arrays, Array Lists, Stacks, Queues and Linked Lists Chapters 3.1-3.3, 5.1-5.2, 6.1-1 - Core Collection Interfaces - 2 - The Java Collections Framework Interface Abstract
More informationChapter 18: Stacks And Queues. Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter 18: Stacks And Queues Copyright 2009 Pearson Education, Inc. Copyright Publishing as Pearson 2009 Addison-Wesley Pearson Education, Inc. Publishing as Pearson Addison-Wesley 18.1 Introduction to
More information8. Fundamental Data Structures
172 8. Fundamental Data Structures Abstract data types stack, queue, implementation variants for linked lists, [Ottman/Widmayer, Kap. 1.5.1-1.5.2, Cormen et al, Kap. 10.1.-10.2] Abstract Data Types 173
More informationYou must include this cover sheet. Either type up the assignment using theory3.tex, or print out this PDF.
15-122 Assignment 3 Page 1 of 12 15-122 : Principles of Imperative Computation Fall 2012 Assignment 3 (Theory Part) Due: Thursday, October 4 at the beginning of lecture. Name: Andrew ID: Recitation: The
More informationCSC212:Data Structure
CSC212:Data Structure 1 Queue: First In First Out (FIFO). Used in operating systems, simulations etc. Priority Queues: Highest priority item is served first. Used in operating systems, printer servers
More informationYou must print this PDF and write your answers neatly by hand. You should hand in the assignment before recitation begins.
15-122 Homework 4 Page 1 of 13 15-122 : Principles of Imperative Computation, Summer 1 2014 Written Homework 4 Due: Thursday, June 12 before recitation Name: Andrew ID: Recitation: In this assignment,
More informationCMSC Introduction to Algorithms Spring 2012 Lecture 7
CMSC 351 - Introduction to Algorithms Spring 2012 Lecture 7 Instructor: MohammadTaghi Hajiaghayi Scribe: Rajesh Chitnis 1 Introduction In this lecture we give an introduction to Data Structures like arrays,
More informationStack and Queue. Stack:
Stack and Queue Stack: Abstract Data Type A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle. In the pushdown stacks only two operations
More informationQueues. Lesson 4. CS 32: Data Structures Dept. of Computer Science
Queues Lesson 4 Outline What is a queue? Straight queue Circular Queue Sequential Implementation Linked Implementation Application: Topological sort Deques Final Notes Outline What is a queue? Straight
More informationChapter 18: Stacks And Queues
Chapter 18: Stacks And Queues 18.1 Introduction to the Stack ADT Introduction to the Stack ADT Stack a LIFO (last in, first out) data structure Examples plates in a cafeteria return addresses for function
More informationdata structures and algorithms lecture 6
data structures and algorithms 2017 09 21 lecture 6 overview lower bound counting sort radix sort stacks queues material question we have seen for example insertion sort: worst-case in O(n 2 ) merge sort:
More informationC Data Structures Stacks. Stack. push Adds a new node to the top of the stack
1 12 C Data Structures 12.5 Stacks 2 Stack New nodes can be added and removed only at the top Similar to a pile of dishes Last-in, first-out (LIFO) Bottom of stack indicated by a link member to NULL Constrained
More informationCSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Synchronization Exercise
CSE120 Principles of Operating Systems Prof Yuanyuan (YY) Zhou Synchronization Exercise A good review video l https://www.youtube.com/watch?v=1bvyjmgiaeu l Correction: CPU doesn t do scheduling. It is
More informationPA3 Design Specification
PA3 Teaching Data Structure 1. System Description The Data Structure Web application is written in JavaScript and HTML5. It has been divided into 9 pages: Singly linked page, Stack page, Postfix expression
More informationA. Year / Module Semester Subject Topic 2016 / V 2 PCD Pointers, Preprocessors, DS
Syllabus: Pointers and Preprocessors: Pointers and address, pointers and functions (call by reference) arguments, pointers and arrays, address arithmetic, character pointer and functions, pointers to pointer,initialization
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 informationCS 2301 Exam 3 B-Term 2011
NAME: CS 2301 Exam 3 B-Term 2011 Questions 1-3: (15) Question 4: (15) Question 5: (20) Question 6: (10) Question 7: (15) Question 8: (15) Question 9: (10) TOTAL: (100) You may refer to one sheet of notes
More information