# Stack & Queue. Darshan Institute of Engineering & Technology. Explain Array in detail. Row major matrix No of Columns = m = u2 b2 + 1

Save this PDF as:

Size: px
Start display at page:

Download "Stack & Queue. Darshan Institute of Engineering & Technology. Explain Array in detail. Row major matrix No of Columns = m = u2 b2 + 1"

## Transcription

1 Stack & Queue Explain Array in detail One Dimensional Array Simplest data structure that makes use of computed address to locate its elements is the onedimensional array or vector; number of memory locations is sequentially allocated to the vector. A vector size is fixed and therefore requires a fixed number of memory locations. Vector A with subscript lower bound of one is represented as below. L 0 L 0 + (i )C A [i] L 0 is the address of the first word allocated to the first element of vector A. C words are allocated for each element or node The address of A i is given equation Loc (A i ) = L 0 + C (i ) Let s consider the more general case of representing a vector A whose lower bound for it s subscript is given by some variable b. The location of Ai is then given by Loc (A i ) = L 0 + C (i b) Two Dimensional Array Two dimensional arrays are also called table or matrix, two dimensional arrays have two subscripts Two dimensional array in which elements are stored column by column is called as column major matrix Two dimensional array in which elements are stored row by row is called as row major matrix First subscript denotes number of rows and second subscript denotes the number of columns Two dimensional array consisting of two rows and four columns as above Fig is stored sequentially by columns : A [, ], A [ 2, ], A [, 2 ], A [ 2, 2 ], A [, 3 ], A [ 2, 3 ], A [, 4 ], A [ 2, 4 ] The address of element A [ i, j ] can be obtained by expression Loc (A [ i, j ]) = L 0 + (j )*2 + i In general for two dimensional array consisting of n rows and m columns the address element A [ i, j ] is given by Loc (A [ i, j ]) = L 0 + (j )*n + (i ) In row major matrix, array can be generalized to arbitrary lower and upper bound in its subscripts, assume that b I u and b2 j u2 b, b2 b, u2 [, ] [, 2 ] [, 3 ] [,m ] [ 2, ] [ 2, 2 ] [ 2, 3 ] [ 2 m ] [ n, ] [ n, 2 ] [ n, 3 ] [ n, m ] u, b2 Row major matrix No of Columns = m = u2 b2 + row row 2 col col 2 col 3 col 4 [, ] [, 2 ] [, 3 ] [, 4 ] [ 2, ] [ 2, 2 ] [ 2, 3 ] [ 2, 4 ] Column major matrix For row major matrix : Loc (A [ i, j ]) = L 0 + ( i b ) *(u2 b2+) + (j b2) Prof. Pradyumansinh Jadeja ( ) Data Structure

2 Stack & Queue What is sparse matrix? Explain An mxn matrix is said to be sparse if many of its elements are zero. A matrix that is not sparse is called a dense matrix. We can device a simple representation scheme whose space requirement equals the size of the nonzero elements. Example: o The non zero entries of a sparse matrix may be mapped into a linear list in row major order. o For example the non zero entries of 4X8 matrix of below fig.(a) in row major order are 2,, 6, 7, 3, 9, 8, 4, Fig (a) 4 x 8 matrix Terms Row Column Value Fig (b) Linear Representation of above matrix To construct matrix structure we need to record (a) Original row and columns of each non zero entries (b) No of rows and columns in the matrix So each element of the array into which the sparse matrix is mapped need to have three fields: row, column and value A corresponding amount of time is saved creating the linear list representation over initialization of two dimension array. A = Here from 6X7=42 elements, only 0 are non zero. A[,3]=6, A[,5]=9, A[2,]=2, A[2,4]=7, A[2,5]=8, A[2,7]=4, A[3,]=0, A[4,3]=2, A[6,4]=3, A[6,7]=5. One basic method for storing such a sparse matrix is to store non zero elements in one dimensional array and to identify each array elements with row and column indices fig (c). 2 Prof. Pradyumansinh Jadeja ( ) Data Structure

3 Stack & Queue ROW COLUMN A Fig (c ) COLUMN A 3 6 ROW ROW NO First Column for row no COLUMN NO Fig(d) A more efficient representation in terms of storage requirement and access time to the row of the matrix is shown in fid (d). The row vector changed so that its i th element is the index to the first of the column indices for the element in row I of the matrix. 3 Prof. Pradyumansinh Jadeja ( ) Data Structure

4 Stack & Queue What is recursion? Write a C program for GCD using recursion. A procedure that contains a procedure call to itself or a procedure call to second procedure which eventually causes the first procedure to be called is known as recursive procedure. There are two important conditions that must be satisfied by any recursive procedure a. Each time a procedure calls itself it must be nearer in some sense to a solution b. There must be a decision criterion for stopping the process or computation C program for GCD using recursion #include<stdio.h> int Find_GCD(int, int); void main() { int n, n2, gcd; scanf( %d %d,&n, &n2); gcd = Find_GCD(n, &n2); printf( GCD of %d and %d is %d, n, n2, gcd); } int Find_GCD(int m, int n) { int gcdval; if(n>m) { gcdval = Find_GCD(n,m); } else if(n==0) { gcdval = m; } else { gcdval = Find_GCD(n, m%n); } return(gcdval); } 4 Prof. Pradyumansinh Jadeja ( ) Data Structure

5 Stack & Queue Give difference between recursion and iteration Iteration In iteration, a problem is converted into a train of steps that are finished one at a time, one after another With iteration, each step clearly leads onto the next, like stepping stones across a river Any iterative problem is solved recursively It does not use Stack Recursion Recursion is like piling all of those steps on top of each other and then quashing them all into the solution. In recursion, each step replicates itself at a smaller scale, so that all of them combined together eventually solve the problem. Not all recursive problem can solved by iteration It uses Stack Write algorithms for Stack Operations PUSH, POP, PEEP A linear list which allows insertion and deletion of an element at one end only is called stack. The insertion operation is called as PUSH and deletion operation as POP. The most and least accessible elements in stack are known as top and bottom of the stack respectively. Since insertion and deletion operations are performed at one end of a stack, the elements can only be removed in the opposite orders from that in which they were added to the stack; such a linear list is referred to as a LIFO (last in first out) list. A pointer TOP keeps track of the top element in the stack. Initially, when the stack is empty, TOP has a value of one and so on. Each time a new element is inserted in the stack, the pointer is incremented by one before, the element is placed on the stack. The pointer is decremented by one each time a deletion is made from the stack. Procedure : PUSH (S, TOP, X) This procedure inserts an element x to the top of a stack which is represented by a vector S containing N elements with a pointer TOP denoting the top element in the stack. 5 Prof. Pradyumansinh Jadeja ( ) Data Structure

6 Stack & Queue. [Check for stack overflow] If TOP N Then write ( STACK OVERFLOW ) Return 2. [Increment TOP] TOP TOP + 3. [Insert Element] S[TOP] X 4. [Finished] Return Function : POP (S, TOP) This function removes the top element fom a stack which is represented by a vector S and returns this element. TOP is a pointer to the top element of the stack.. [Check for underflow of stack] If TOP = 0 Then Write ( STACK UNDERFLOW ON POP ) Take action in response to underflow Return 2. [Decrement Pointer] TOP TOP 3. [Return former top element of stack] Return (S[TOP + ]) Function : PEEP (S, TOP, I) Given a vector S (consisting of N elements) representing a sequentially allocated stack, and a pointer TOP denoting the top element of the stack, this function returns the value of the i th element from the TOP of the stack. The element is not deleted by this function.. [Check for stack Underflow] If TOP I + 0 Then Write ( STACK UNDERFLOW ON PEEP ) Take action in response to Underflow Exit 2. [Return I th element from top of the stack Return (S[TOP I + ]) 6 Prof. Pradyumansinh Jadeja ( ) Data Structure

7 Stack & Queue Write an algorithm to change the i th value of stack to value X PROCEDURE : CHANGE (S, TOP, X, I) Given a vector S (consisting of N elements) representing a sequentially allocated stack, and a pointer TOP denoting the top element of the stack. This procedure changes the value of the I th element from the top of the stack to the value containing in X.. [Check for stack Underflow] If TOP I + 0 Then Write ( STACK UNDERFLOW ON CHANGE ) Return 2. [Change I th element from top of the stack] S[TOP I + ] X 3. [Finished] Return 7 Prof. Pradyumansinh Jadeja ( ) Data Structure

8 Stack & Queue Write an algorithm which will check that the given string belongs to following grammar or not. L={wcw R w Є {a,b}*}(where w R is the reverse of w) Algorithm RECOGNIZE Given an input string named STRING on the alphabet {a, b, c} which contains a blank in its rightmost character position and function NEXTCHAR which returns the next symbol in STRING, this algorithm determines whether the contents of STRING belong to the above language. The vector S represents the stack, and TOP is a pointer to the top element of the stack.. [Initialize stack by placing a letter c on the top] TOP S [TOP] c 2. [Get and stack symbols either c or blank is encountered] NEXT NEXTCHAR (STRING) Repeat while NEXT c If NEXT = Then Write ( Invalid String ) Exit Else Call PUSH (S, TOP, NEXT) NEXT NEXTCHAR (STRING) 3. [Scan characters following c ; Compare them to the characters on stack] Repeat While S [TOP] c NEXT NEXTCHAR (STRING) X POP (S, TOP) If NEXT X Then Write ( INVALID STRING ) Exit 4. [Next symbol must be blank] If NEXT Then Write ( VALID STRING ) Else Write ( INVALID STRING ) 5. [Finished] Exit 8 Prof. Pradyumansinh Jadeja ( ) Data Structure

9 Stack & Queue Write an algorithm for push, pop and empty operations on stack. Using above functions write an algorithm to determine if an input character string is of the form aibi where i>= i.e. no of a should be equal to no of b Algorithm RECOGNIZE Given an input string named STRING on alphabet a and b which contain blank ( ) on right most character function NEXTCHAR which returns the next symbol from STRING. This algorithm determines if an input string is of form a i b i where i> i.e no of a should be equal to no of b. the vector S represent the stack and TOP is the pointer to the top element of stack. Counter is a counter B for b occurrence.. [Initialize stack and counter] TOP 0 COUNTER_B 0 2. [Get and stack character a from whole string and count the occurrence of b ] NEXT NEXTCHAR(STRING) Repeat while NEXT!= IF NEXT = a Then PUSH (S,TOP,NEXT) Else COUNTER_B COUNTER_B+ NEXT NEXTCHAR(STRING) 3. [Pop the stack until empty and decrement the COUNTERB] Repeat while TOP!= 0 POP (S,TOP) COUNTER_B COUNTER_B 4. [Check for grammar] If COUNTER_B!= 0 Then write ( INVALID STRING ) Else write ( VALID STRING ) 9 Prof. Pradyumansinh Jadeja ( ) Data Structure

10 Stack & Queue Write an algorithm to convert infix expression to postfix expression. Symbol Input precedence Stack precedence Rank function R function F function G +, *, / ^ Variables 7 8 ( ) Algorithm : REVPOL Given an input string INFIX containing an infix expression which has been padded on the right with ) and whose symbol have precedence value given by above table, a vector S used as a stack and a NEXTCHAR which when invoked returns the next character of its argument. This algorithm converts INFIX into reverse polish and places the result in the string POLISH. The integer variable TOP denotes the top of the stack. Algorithm PUSH and POP are used for stack manipulation. The integer variable RANK accumulates the rank of expression. Finally the string variable TEMP is used for temporary storage purpose. 0 Prof. Pradyumansinh Jadeja ( ) Data Structure

11 Stack & Queue. [Initialize stack] TOP S[TOP] ( 2. [Initialize output string and rank count ] POLISH RANK 0 3. [Get first input symbol] NEXT NEXTCHAR (INFIX) 4. [Translate the infix expression ] Repeat thru step 7 while NEXT!= 5. [Remove symbols with greater precedence from stack] IF TOP < Then write ( INVALID ) EXIT Repeat while F(NEXT) < G (S[TOP]) TEMP POP (S, TOP) POLISH POLISH O TEMP RANK RANK + R(TEMP) IF RANK < Then write INVALID ) EXIT 6. [Are there matching parentheses] IF F(NEXT)!= G(S[TOP]) Then call PUSH (S,TOP, NEXT) Else POP (S,TOP) 7. [Get next symbol] NEXT NEXTCHAR(INFIX) 8. [Is the expression valid] IF TOP!= 0 OR RANK!= Then write ( INVALID ) Else write ( VALID ) Prof. Pradyumansinh Jadeja ( ) Data Structure

12 Stack & Queue Trace the conversion of infix to postfix form in tabular form. (i) ( A + B * C / D E + F / G / ( H + I ) ) Input Symbol Content of stack Reverse polish Rank ( 0 ( ( ( 0 A ( ( 0 + ( ( + A B ( ( + B A * ( ( + * A B 2 C ( ( + * C A B 2 / ( ( + / A B C * 2 D ( ( + / D A B C * 2 ( ( A B C * D / + E ( ( E A B C * D / + + ( ( + A B C * D / + E F ( ( + F A B C * D / + E / ( ( + / A B C * D / + E F 2 G ( ( + / G A B C * D / + E F 2 / ( ( + / A B C * D / + E F G / 2 ( ( ( + / ( A B C * D / + E F G / 2 H ( ( + / ( H A B C * D / + E F G / 2 + ( ( + / ( + A B C * D / + E F G / H 3 I ( ( + / ( + I A B C * D / + E F G / H 3 ) ( ( + / A B C * D / + E F G / H I + 3 ) ( A B C * D / + E F G / H I + / + ) A B C * D / + E F G / H I + / + Postfix expression is: A B C * D / + E F G / H I + / + 2 Prof. Pradyumansinh Jadeja ( ) Data Structure

13 Stack & Queue (ii) ( A + B ) * C + D / ( B + A * C ) + D Input Symbol Content of stack Reverse polish Rank ( 0 ( ( ( 0 A ( ( A 0 + (( + A B ( ( + B A ) ( A B + * ( * A B + C ( * C A B + + ( + A B + C * D ( + D A B + C * / ( + / A B + C * D 2 ( ( + / ( A B + C * D 2 B ( + / ( B A B + C * D 2 + ( + / ( + A B + C * D B 3 A ( + / ( + A A B + C * D B 3 * ( + / ( + * A B + C * D B A 4 C ( + / ( + * C A B + C * D B A 4 ) ( + / A B + C * D B A C * ( + A B + C * D B A C * + / + D ( + D A B + C * D B A C * + / + ) A B + C * D B A C * + / + D + Postfix expression is: A B + C * D B A C * + / + D + 3 Prof. Pradyumansinh Jadeja ( ) Data Structure

14 Stack & Queue Convert the following string into prefix: A B/(C*D^E) Step- : reverse infix expression ) E ^ ) D * C ( ( / B - A Step-2 : convert ( to ) and ) to ( and append extra ) at last ( E ^ ( D * C ) ) / B - A Step-3 : Now convert this string to postfix Input Symbol Content of stack Reverse polish Rank ( 0 ( ( ( 0 E ( ( E 0 ^ ( ( ^ E ( ( ( ^ ( E D ( ( ^ ( D E * ( ( ^ ( * E D 2 C ( ( ^ ( * C E D 2 ) ( ( ^ E D C * 2 ) ( E D C * ^ / ( / E D C * ^ B ( / B E D C * ^ ( E D C * ^ B / A ( A E D C * ^ B / ) E D C * ^ B / A Step 4 : Reverse this postfix expression A / B ^ * C D E 4 Prof. Pradyumansinh Jadeja ( ) Data Structure

15 Stack & Queue Translate the following string into Polish notation and trace the content of stack : (a + b ^ c ^ d) * ( e + f / d ) Step- : reverse infix expression ) d / f + e ( * ) d ^ c ^ b + a ( Step-2 : convert ( to ) and ) to ( and append extra ) at last ( d / f + e ) * ( d ^ c ^ b + a ) ) Step-3 : Now convert this string to postfix Input symbol Content of stack Reverse polish Rank ( 0 ( ( ( 0 d ( ( d 0 / ( ( / d f ( ( / f d + ( ( + d f / e ( ( + e d f / ) ( d f / e + * ( + d f / e + ( ( * ( d f / e + d ( * ( d d f / e + ^ ( * ( ^ d f / e + d 2 c ( * ( ^ c d f / e + d 2 ^ ( * ( ^ ^ d f / e + d c 3 b ( * ( ^ ^ b d f / e + d c 3 + ( * ( + d f / e + d c b ^ ^ 2 a ( * ( + a d f / e + d c b ^ ^ 2 ) ( * d f / e + d c b ^ ^ a + 2 ) d f / e + d c b ^ ^ a + * Step 4 : Reverse this postfix expression * + a ^ ^ b c d + e / f d 5 Prof. Pradyumansinh Jadeja ( ) Data Structure

16 Stack & Queue Write an algorithm for evaluation of postfix expression and evaluation the following expression showing every status of stack in tabular form. (i) * / + * (ii) * 4 + / Algorithm : EVALUAE_POSTFIX Given an input string POSTFIX representing postfix expression. This algorithm is going to evaluate postfix expression and put the result into variable VALUE. A vector S is used as a stack PUSH and POP are the function used for manipulation of stack. Operand2 and operand are temporary variable TEMP is used for temporary variable NEXTCHAR is a function which when invoked returns the next character. PERFORM_OPERATION is a function which performs required operation on OPERAND AND OPERAND2.. [Initialize stack and value] TOP VALUE 0 2. [Evaluate the prefix expression] Repeat until last character TEMP NEXTCHAR (POSTFIX) If TEMP is DIGIT Then PUSH (S, TOP, TEMP) Else OPERAND2 POP (S, TOP) OPERAND POP (S, TOP) VALUE PERFORM_OPERATION (OPERAND, OPERAND2, TEMP) PUSH (S, POP, VALUE) 3. [Return answer from stack] Return (POP (S, TOP)) 6 Prof. Pradyumansinh Jadeja ( ) Data Structure

19 Stack & Queue Explain following: (i) Queue (ii) Circular Queue (iii) DQUEUE (iv) Priority Queue (i) Queue o A linear list which permits deletion to be performed at one end of the list and insertion at the other end is called queue. o o o The information in such a list is processed FIFO (first in first out) of FCFS (first come first served) pattern. Front is the end of queue from that deletion is to be performed. Rear is the end of queue at which new element is to be inserted. Front Deletion Insertion (ii) Circular Queue o A more suitable method of representing simple queue which prevents an excessive use of memory is to arrange the elements Q[], Q[2].,Q[n] in a circular fashion with Q[] following Q[n], this is called circular queue. Rear (iii) Dqueue o A dqueue (double ended queue ) is a linear list in which insertion and deletion are performed from the either end of the structure. o There are two variations of Dqueue Input restricted dqueue allows insertion at only one end Output restricted dqueue allows deletion from only one end o Such a structure can be represented by following fig. 9 Prof. Pradyumansinh Jadeja ( ) Data Structure

20 Stack & Queue Front Deletion Insertion Insertion Deletion (iv) Priority Queue o A queue in which we are able to insert remove items from any position based on some property (such as priority of the task to be processed) is often referred as priority queue. o Below fig. represent a priority queue of jobs waiting to use a computer. o Priorities of, 2, 3 have been attached with jobs of real time, online and batch respectively. Therefore if a job is initiated with priority i,it is inserted immediately at the end of list of other jobs with priorities i. Here jobs are always removed from the front of queue Task Identification R R 2 R i O O 2 O j B B 2 B k Priority Rear R i O j B k Fig (a) : Priority Queue viewed as a single queue with insertion allowed at any position. Priority R R 2 R i Priority 2 O O 2 O j Priority 3 B B 2 B k R i O j B k Fig (b) : Priority Queue viewed as a Viewed as a set of queue 20 Prof. Pradyumansinh Jadeja ( ) Data Structure

21 Stack & Queue Write algorithms of basic primitive operations for Queue Procedure: QINSERT_REAR (Q, F, R, N,Y) Given F and R pointers to the front and rear elements of a queue, a queue consisting of N elements and an element Y, this procedure inserts Y at the rear of the queue. Priors to the first invocation of a procedure, F and R have been set to zero.. [Overflow] IF R >= N Then write ( OVERFLOW ) Return 2. [Increment REAR pointer] R R + 3. [Insert element ] Q[R] Y 4. [Is front pointer properly set] IF F=0 Then F Return Procedure: QDELETE_FRONT (Q, F, R) Given F and R pointers to the front and rear elements of a queue and a queue Q to which they correspond, this function deletes and returns the last element from the front end of a queue and Y is temporary variable.. [Underflow] IF F= 0 Then write ( UNDERFLOW ) Return(0) (0 denotes an empty Queue) 2. [Decrement element] Y Q[F] 3. [Queue empty?] IF F=R Then F R 0 Else F F+ (increment front pointer) 4. [Return element] Return (Y) 2 Prof. Pradyumansinh Jadeja ( ) Data Structure

22 Stack & Queue Write algorithms of basic primitive operations for Circular Queue Procedure: CQINSERT (F, R, Q, N, Y) Given pointers to the front and rear of a circular queue F and R, a vector Q consisting of N elements, and an element Y, this procedure inserts Y at the rear of a queue. Initially F and R are set to zero.. [Reset Rear Pointer] If R = N Then R Else R R + 2. [Overflow] If F = R Then Write ( Overflow ) Return 3. [Insert element] Q[R] Y 4. [Is front pointer properly set?] If F = 0 Then F Return Function CQDELETE (F, R, Q, N) Given F and R pointers to the front and rear of a circular queue, respectively, and a vector Q consisting of N elements, this function deletes and returns the last element of the queue. Y is a temporary variable.. [Underflow?] If F = 0 Then Write ( UNDERFLOW ) Return (0) 2. [Delete Element] Y Q[F] 3. [Queue Empty?] If F = R Then F R 0 Return (Y) 4. [Increment front pointer] If F = N Then F Else F F + Return (Y) 22 Prof. Pradyumansinh Jadeja ( ) Data Structure

23 Stack & Queue Write algorithms of basic primitive operations for DQueue Procedure DQINSERT_FRONT (Q, F, R, N,Y) Given F and R pointers to the front and rear elements of a queue, a queue consisting of N elements and an element Y, this procedure inserts Y at the front of the queue.. [Overflow] IF F = 0 Then write ( EMPTY ) Return IF F= Then write ( OVERFLOW ) Return 2. [Decrement front pointer] F F 3. [Insert element ] Q[F] Y Return Procedure DQDELETE_REAR (Q, F, R) Given F and R pointers to the front and rear elements of a queue. And a queue Q to which they correspond, this function deletes and returns the last element from the front end of a queue. And Y is temporary variable.. [Underflow] IF R= 0 Then write ( UNDERFLOW ) Return(0) 2. [Delete element] Y Q[R] 3. [Queue empty?] IF R=F Then R F 0 Else R R (decrement front pointer) 4. [Return element] Return (Y) 23 Prof. Pradyumansinh Jadeja ( ) Data Structure

24 Stack & Queue PROCEDURE DQUEUE_DISPLAY (F,R,Q) Given F and R are pointers to the front and rear elements of a queue, a queue consist of N elements. This procedure display Queue contents. [Check for empty] IF F >= R Then write ( QUEUE IS EMPTY ) Return 2. [Display content] FOR (I=FRONT; I<=REAER; I++) Write (Q[I]) 3. [Return Statement] Return Consider the following queue, where queue is a circular queue having 6 memory cells. Front=2, Rear=4 Queue: _, A, C, D, _, _ Describe queue as following operation take place: F is added to the queue Two letters are deleted R is added to the queue S is added to the queue One letter is deleted Positions Initial Position of Queue, Front=2, Rear=4 A C D F is added to queue, Front=2, Rear=5 A C D F Two letters are deleted, Front=4, Rear=5 D F R is added to the queue, Front=4, Rear=6 D F R S is added to the queue, Front=4, Rear= S D F R One letter is deleted, Front=5, Rear= S F R 24 Prof. Pradyumansinh Jadeja ( ) Data Structure

30 Linked List Function: INSEND( X, First ) (Insert at end) A new element is X and FIRST is a pointer to the first element of a linked linear list then this function inserts X. AVAIL is a pointer to the top element of the availability stack; NEW and SAVE are temporary pointer variables. It is required that X be inserted at the end of the list.. [Create New Empty Node] NEW NODE 2. [Initialize field of NEW node] INFO (NEW) X LINK (NEW) NULL 3. [Is the list empty?] If FIRST = NULL then return (NEW) 4. [Initialize search for a last node] SAVE FIRST 5. [Search for end of list] Repeat while LINK (SAVE) NULL SAVE LINK (SAVE) 6. [Set link field of last node to NEW) LINK (SAVE) NEW 7. [Return first node pointer] return (FIRST) 6

32 Linked List By repeatedly involving function INSORD, we can easily obtains an ordered liner list for example the sequence of statements. FRONT NULL FRONT INSORD (29, FRONT) FRONT INSORD (0, FRONT) FRONT INSORD (25, FRONT) FRONT INSORD (40, FRONT) FRONT INSORD (37, FRONT) FRONT 29 FRONT FRONT FRONT FRONT Trace of construction of an ordered linked linear list using function INSORD Procedure : DELETE( X, FIRST) Algorithm that deletes node from a linked linear list:. If a linked list is empty, then write under flow and return. 2. Repeat step 3 while end of the list has not been reached and the node has not been found. 3. Obtain the next node in list and record its predecessor node. 4. If the end of the list has been reached then write node not found and return. 5. Delete the node from list. 6. Return the node into availability area. A new element is X and FIRST is a pointer to the first element of a linked linear list then this procedure deletes the node whose address is given by X. SAVE is used to find the desired node, and PRED keeps track of the predecessor of TEMP. Note that FIRST is changed only when X is the first element of the list. 8

34 Linked List 6. Set link of the last node in the new list to null and return.. [Is Empty List?] If FIRST = NULL then return (NULL) 2. [Copy first node] NEW NODE New AVAIL AVAIL LINK (AVAIL) FIELD (NEW) INFO (FIRST) BEGIN NEW 3. [Initialize traversal] SAVE FIRST 4. [Move the next node if not at the end if list] Repeat thru step 6 while (SAVE) NULL 5. [Update predecessor and save pointer] PRED NEW SAVE LINK (SAVE) 6. [Copy node] If AVAIL = NULL then write ( Availability stack underflow ) return (0) else NEW AVAIL AVAIL LINK (AVAIL) FIELD (NEW) INFO (SAVE) PTR (PRED) NEW 7. [Set link of last node and return] PTR (NEW) NULL return (BEGIN) 0

36 Linked List. [Create New Empty Node] NEW NODE 2. [Initialize fields of new node and its link to the list] If FIRST = NULL then LINK (NEW) NEW FIRST LAST NEW return(first) else LINK(NEW) FIRST LINK(LAST) NEW LAST NEW return(first) FUNCTION: CIR_LINK_INSERT_ORDER (X, FIRST, LAST) A new element is X; and FIRST and LAST a pointer to the first and last element of a linked linear list respectively whose typical node contains INFO and LINK fields. AVAIL is a pointer to the top element of the availability stack; NEW and SAVE are temporary points variables. It is required that X be inserted so that it preserves the ordering of the terms in increasing order of their INFO field. 2

38 Linked List. [Is Empty List?] If FIRST = NULL then write ( Linked List is Empty ) return 2. [Initialize Search for X] TEMP FIRST 3. [Find X] Repeat thru step 5 while SAVE X and SAVE LAST 4. [Update predecessor marker] PRED SAVE 5. [Move to next node] SAVE LINK (SAVE) 6. [End of Linked List] If SAVE X then write( Node not found ) return 7. [Delete X] If X = FIRST then FIRST LINK (FIRST) LINK (LAST) FIRST else LINK (PRED) LINK(X) If X = LAST then LAST PRED 8. [Free Deleted Node] Free (X) 4

42 Linked List 7. Write following algorithms for doubly link list ) Insert 2) Insert in Ordered Linked List 3) Delete Element PRDCEDURE DOUBINS (L, R, M, X) Given a doubly link list whose left most and right most nodes addressed are given by the pointer variables L and R respectively. It is required to insert a node whose address is given by the pointer variable NEW. The left and right links of nodes are denoted by LPTR and RPTR respectively. The information field of a node is denoted by variable INFO. The name of an element of the list is NODE. The insertion is to be performed to the left of a specific node with its address given by the pointer variable M. The information to be entered in the node is contained in X.. [Create New Empty Node] NEW NODE 2. [Copy information field] INFO (NEW) X 3. [Insert into an empty list] If R = NULL then LPTR (NEW) RPTR (NULL) NULL L R NEW return 4. [Is left most insertion?] If M = L then LPTR (NEW) NULL RPTR (NEW) M LPTR (M) NEW L NEW return 5. [Insert in middle] LPTR (NEW) LPTR (M) RPTR (NEW) M LPTR (M) NEW RPTR (LPTR (NEW)) NEW return 8

43 Linked List PROCEDURE DOUBINS_ORD (L, R, M, X) Given a doubly link list whose left most and right most nodes addressed are given by the pointer variables L and R respectively. It is required to insert a node whose address is given by the pointer variable NEW. The left and right links of nodes are denoted by LPTR and RPTR respectively. The information field of a node is denoted by variable INFO. The name of an element of the list is NODE. The insertion is to be performed in ascending order of info part. The information to be entered in the node is contained in X.. [Create New Empty Node] NEW NODE 2. [ Copy information field] INFO (NEW) X 3. [Insert into an empty list] If R = NULL then LPTR (NEW) RPTR (NULL) NULL L R NEW return 4. [Does the new node precedes all other nodes in List? ] If INFO(NEW) INFO(L) then RPTR (NEW) L LPTR(NEW) NULL LPTR (L) NEW L NEW return 5. [ Initialize top Pointer] SAVE L 6. [Search for predecessor of New node] Repeat while RPTR(SAVE) NULL and INFO(NEW) INFO(RPTR(SAVE)) SAVE RPTR (SAVE) 7. [Set link field of new node and its predecessor] RPTR (NEW) RPTR(SAVE) LPTR (RPTR(SAVE)) NEW RPTR (SAVE) NEW LPTR (NEW) SAVE If then SAVE = R RPTR(SAVE) NEW 9

44 Linked List PROCEDURE DOUBDEL (L, R, OLD) Given a doubly linked list with the addresses of left most and right most nodes are given by the pointer variables L and R respectively. It is required to delete the node whose address id contained in the variable OLD. Node contains left and right links with names LPTR and RPTR respectively.. [ Is underflow?] If R=NULL then write ( UNDERFLOW ) return 2. [Delete node] If L = R (single node in list) then L R NULL else If OLD = L (left most node) then L RPTR(L) LPTR (L) NULL else if OLD = R (right most) then R LPTR (R) RPTR (R) NULL else RPTR (LPTR (OLD)) RPTR (OLD) LPTR (RPTR (OLD)) LPTR (OLD) 3. [ Return deleted node] restore (OLD) return 20

45 Linked List 8. Write the implementation procedure of basic primitive operations of the stack using: (i) Linear array (ii) linked list. Implement PUSH and POP using Linear array #define MAXSIZE 00 int stack[maxsize]; int top=-; void push(int val) { if(top >= MAXSIZE) printf("stack is Overflow"); else stack[++top] = val; } int pop() { int a; if(top>=0) { a=stack[top]; top -; return a; } else { printf("stack is Underflow, Stack is empty, nothing to POP!"); return -; } } 2

46 Linked List Implement PUSH and POP using Linked List #include<stdio.h> #include<malloc.h> struct node { int info; struct node *link; } *top; void push(int val) { struct node *p; p = (struct node*)malloc(sizeof(struct node)); p info = val; p link = top; top = p; return; } int pop() { int val; if(top!=null) { val = top info; top=top link; return val; } else { printf("stack Underflow"); return -; } } 22

47 Linked List 9. Write the implementation procedure of basic primitive operations of the Queue using: (i) Linear array (ii) linked list Implement Enqueue(Insert)and Dequeue(Delete)using Linear Array # include <stdio.h> # define MAXSIZE 00 int queue[maxsize], front = -, rear = -; void enqueue(int val) { if(rear >= MAXSIZE) { printf("queue is overflow") ; return ; } rear++; queue [rear] = val; if(front == -) { front++; } } int dequeue() { int data; if(front == -) { printf("queue is underflow") ; return -; } data = queue [front]; if(front == rear) { front = rear = -; } else { front++; } return data; } 23

### Module 2 Stacks and Queues: Abstract Data Types

Module 2 Stacks and Queues: Abstract Data Types A stack is one of the most important and useful non-primitive linear data structure in computer science. It is an ordered collection of items into which

### DATA STRUCTURES USING C

DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give

### 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The

### 10CS35: Data Structures Using C

CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions - a conventional tool for handling a

### 12 Abstract Data Types

12 Abstract Data Types 12.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT).

### Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate

### Data Structure. Lecture 3

Data Structure Lecture 3 Data Structure Formally define Data structure as: DS describes not only set of objects but the ways they are related, the set of operations which may be applied to the elements

### PES Institute of Technology-BSC QUESTION BANK

PES Institute of Technology-BSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I -BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions

### Common Data Structures

Data Structures 1 Common Data Structures Arrays (single and multiple dimensional) Linked Lists Stacks Queues Trees Graphs You should already be familiar with arrays, so they will not be discussed. Trees

### Algorithms and Data Structures

Algorithms and Data Structures Part 2: Data Structures PD Dr. rer. nat. habil. Ralf-Peter Mundani Computation in Engineering (CiE) Summer Term 2016 Overview general linked lists stacks queues trees 2 2

### Comp 245 Data Structures. Stacks

Comp 245 Data Structures Stacks What is a Stack? A LIFO (last in, first out) structure Access (storage or retrieval) may only take place at the TOP NO random access to other elements within the stack An

### Data Structure and Algorithm I Midterm Examination 120 points Time: 9:10am-12:10pm (180 minutes), Friday, November 12, 2010

Data Structure and Algorithm I Midterm Examination 120 points Time: 9:10am-12:10pm (180 minutes), Friday, November 12, 2010 Problem 1. In each of the following question, please specify if the statement

### Chapter 3: Restricted Structures Page 1

Chapter 3: Restricted Structures Page 1 1 2 3 4 5 6 7 8 9 10 Restricted Structures Chapter 3 Overview Of Restricted Structures The two most commonly used restricted structures are Stack and Queue Both

### Data Structures Using C++ 2E. Chapter 5 Linked Lists

Data Structures Using C++ 2E Chapter 5 Linked Lists Doubly Linked Lists Traversed in either direction Typical operations Initialize the list Destroy the list Determine if list empty Search list for a given

### Data Structures UNIT III. Model Question Answer

Data Structures UNIT III Model Question Answer Q.1. Define Stack? What are the different primitive operations on Stack? Ans: Stack: A stack is a linear structure in which items may be added or removed

### Glossary of Object Oriented Terms

Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

### DATA STRUCTURE - STACK

DATA STRUCTURE - STACK http://www.tutorialspoint.com/data_structures_algorithms/stack_algorithm.htm Copyright tutorialspoint.com A stack is an abstract data type ADT, commonly used in most programming

### Data Structures Using C++ 2E. Chapter 7 Stacks

Data Structures Using C++ 2E Chapter 7 Stacks Stacks Data structure Elements added, removed from one end only Last In First Out (LIFO) FIGURE 7-1 Various examples of stacks Data Structures Using C++ 2E

### AS-2261 M.Sc.(First Semester) Examination-2013 Paper -fourth Subject-Data structure with algorithm

AS-2261 M.Sc.(First Semester) Examination-2013 Paper -fourth Subject-Data structure with algorithm Time: Three Hours] [Maximum Marks: 60 Note Attempts all the questions. All carry equal marks Section A

### UNIVERSITI MALAYSIA SARAWAK KOTA SAMARAHAN SARAWAK PSD2023 ALGORITHM & DATA STRUCTURE

STUDENT IDENTIFICATION NO UNIVERSITI MALAYSIA SARAWAK 94300 KOTA SAMARAHAN SARAWAK FAKULTI SAINS KOMPUTER & TEKNOLOGI MAKLUMAT (Faculty of Computer Science & Information Technology) Diploma in Multimedia

### DATA STRUCTURE - QUEUE

DATA STRUCTURE - QUEUE http://www.tutorialspoint.com/data_structures_algorithms/dsa_queue.htm Copyright tutorialspoint.com Queue is an abstract data structure, somewhat similar to stack. In contrast to

### Unit 1. 5. Write iterative and recursive C functions to find the greatest common divisor of two integers. [6]

Unit 1 1. Write the following statements in C : [4] Print the address of a float variable P. Declare and initialize an array to four characters a,b,c,d. 2. Declare a pointer to a function f which accepts

### Analysis of a Search Algorithm

CSE 326 Lecture 4: Lists and Stacks 1. Agfgd 2. Dgsdsfd 3. Hdffdsf 4. Sdfgsfdg 5. Tefsdgass We will review: Analysis: Searching a sorted array (from last time) List ADT: Insert, Delete, Find, First, Kth,

### Data Structure [Question Bank]

Unit I (Analysis of Algorithms) 1. What are algorithms and how they are useful? 2. Describe the factor on best algorithms depends on? 3. Differentiate: Correct & Incorrect Algorithms? 4. Write short note:

### Sequential Data Structures

Sequential Data Structures In this lecture we introduce the basic data structures for storing sequences of objects. These data structures are based on arrays and linked lists, which you met in first year

### 7.1 Our Current Model

Chapter 7 The Stack In this chapter we examine what is arguably the most important abstract data type in computer science, the stack. We will see that the stack ADT and its implementation are very simple.

### 5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The

### Data Structures Using C++ 2E. Chapter 7 Stacks

Data Structures Using C++ 2E Chapter 7 Stacks Linked Implementation of Stacks Disadvantage of array (linear) stack representation Fixed number of elements can be pushed onto stack Solution Use pointer

### MAX = 5 Current = 0 'This will declare an array with 5 elements. Inserting a Value onto the Stack (Push) -----------------------------------------

=============================================================================================================================== DATA STRUCTURE PSEUDO-CODE EXAMPLES (c) Mubashir N. Mir - www.mubashirnabi.com

### 1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D.

1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D. base address 2. The memory address of fifth element of an array can be calculated

### QUEUES. Primitive Queue operations. enqueue (q, x): inserts item x at the rear of the queue q

QUEUES A queue is simply a waiting line that grows by adding elements to its end and shrinks by removing elements from the. Compared to stack, it reflects the more commonly used maxim in real-world, namely,

### Introduction to Data Structures and Algorithms

Introduction to Data Structures and Algorithms Chapter: Elementary Data Structures(1) Lehrstuhl Informatik 7 (Prof. Dr.-Ing. Reinhard German) Martensstraße 3, 91058 Erlangen Overview on simple data structures

### Stacks. Linear data structures

Stacks Linear data structures Collection of components that can be arranged as a straight line Data structure grows or shrinks as we add or remove objects ADTs provide an abstract layer for various operations

### Lecture 12 Doubly Linked Lists (with Recursion)

Lecture 12 Doubly Linked Lists (with Recursion) In this lecture Introduction to Doubly linked lists What is recursion? Designing a node of a DLL Recursion and Linked Lists o Finding a node in a LL (recursively)

### Linked Lists, Stacks, Queues, Deques. It s time for a chainge!

Linked Lists, Stacks, Queues, Deques It s time for a chainge! Learning Goals After this unit, you should be able to... Differentiate an abstraction from an implementation. Define and give examples of problems

### KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

### CS0213 DATA STRUCTURES AND ALGORITHM LAB USING C & C++ LABORATORY MANUAL II - CSE III - SEMESTER ACADEMIC YEAR:

CS0213 DATA STRUCTURES AND ALGORITHM LAB USING C & C++ LABORATORY MANUAL II - CSE III - SEMESTER ACADEMIC YEAR: 2012-2013 SCHOOL OF COMPUTER SCIENCE & ENGINEERING SRM UNIVERSITY, SRM NAGAR, KATTANKULATHUR-603203.

### Stacks. The stack ADT Stack Implementation. Stack Examples. using arrays using generic linked lists using List ADT. EECS 268 Programming II 1

Stacks The stack ADT Stack Implementation using arrays using generic linked lists using List ADT Stack Examples 1 Stacks and Queues Linear data structures each item has specific first, next, and previous

### Abstract Data Type. EECS 281: Data Structures and Algorithms. The Foundation: Data Structures and Abstract Data Types

EECS 281: Data Structures and Algorithms The Foundation: Data Structures and Abstract Data Types Computer science is the science of abstraction. Abstract Data Type Abstraction of a data structure on that

### Queues Outline and Required Reading: Queues ( 4.2 except 4.2.4) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic

Queues Outline and Required Reading: Queues ( 4. except 4..4) COSC, Fall 3, Section A Instructor: N. Vlajic Queue ADT Queue linear data structure organized according to first-in/first-out (FIFO) principle!

### Stacks. Stacks (and Queues) Stacks. q Stack: what is it? q ADT. q Applications. q Implementation(s) CSCU9A3 1

Stacks (and Queues) 1 Stacks Stack: what is it? ADT Applications Implementation(s) 2 CSCU9A3 1 Stacks and ueues A stack is a very important data structure in computing science. A stack is a seuence of

### Quiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s

Quiz 4 Solutions Q1: What value does function mystery return when called with a value of 4? int mystery ( int number ) { if ( number

### PROBLEMS (Cap. 4 - Istruzioni macchina)

98 CHAPTER 2 MACHINE INSTRUCTIONS AND PROGRAMS PROBLEMS (Cap. 4 - Istruzioni macchina) 2.1 Represent the decimal values 5, 2, 14, 10, 26, 19, 51, and 43, as signed, 7-bit numbers in the following binary

### CHAPTER 4 ESSENTIAL DATA STRUCTRURES

CHAPTER 4 ESSENTIAL DATA STRUCTURES 72 CHAPTER 4 ESSENTIAL DATA STRUCTRURES In every algorithm, there is a need to store data. Ranging from storing a single value in a single variable, to more complex

### Introduction to Data Structures

Introduction to Data Structures Albert Gural October 28, 2011 1 Introduction When trying to convert from an algorithm to the actual code, one important aspect to consider is how to store and manipulate

### 4.3 Stacks and Queues. Pushdown Stacks. Data Structures and Data Types. Collections

Data Structures and Data Types 4.3 Stacks and Queues Data types Set values. Set operations on those values. Some are built in to Java: int, double, char,... Most are not: Complex, Picture, Charge, Stack,

### Data Structures and Algorithms V22.0102. Otávio Braga

Data Structures and Algorithms V22.0102 Otávio Braga We use a stack When an operand is read, output it When an operator is read Pop until the top of the stack has an element of lower precedence Then push

### Bhakta Kavi Narsinh Mehta University, Junagadh

Bhakta Kavi Narsinh Mehta University, Junagadh Draft Syllabus for B.Sc. (Computer Science) Bachelor of Science (Computer Science) (Semester - 1) Effective From June - 2016 B.Sc. (C.S.) (Semester - 1) CS-101:

### Course: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1

Definition Course: Programming II - Abstract Data Types The ADT Stack The ADT Stack is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit insertions

### Chapter 13. Pointers and Linked Lists

Chapter 13 Pointers and Linked Lists Overview 13.1 Nodes and Linked Lists 13.2 Stacks and Queues Slide 13-2 13.1 Nodes and Linked Lists Nodes and Linked Lists n A linked list is a list that can grow and

### Algorithms and Data Structures

Basic Data Structures Page 1 BFH-TI: Softwareschule Schweiz Basic Data Structures Dr. CAS SD01 Basic Data Structures Page 2 Outline Data Structures and Abstract Data Types Linear Data Structures Implementing

### Chapter 7. Arrays and Collections. Instructor s Manual Table of Contents. At a Glance. Chapter Overview. Chapter Objectives.

C# Programming: From Problem Analysis to Program Design, 2nd ed. 7-1 Chapter 7 Arrays and Collections At a Glance Instructor s Manual Table of Contents Chapter Overview Chapter Objectives Instructor Notes

Chapter 4: Linked Lists Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Preliminaries Options for implementing an ADT List Array has a fixed size Data must be shifted during

### GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. Course Curriculum. DATA STRUCTURES (Code: 3330704)

GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT Course Curriculum DATA STRUCTURES (Code: 3330704) Diploma Programme in which this course is offered Semester in which offered Computer Engineering,

### Data Structures and Data Manipulation

Data Structures and Data Manipulation What the Specification Says: Explain how static data structures may be used to implement dynamic data structures; Describe algorithms for the insertion, retrieval

### Questions 1 through 25 are worth 2 points each. Choose one best answer for each.

Questions 1 through 25 are worth 2 points each. Choose one best answer for each. 1. For the singly linked list implementation of the queue, where are the enqueues and dequeues performed? c a. Enqueue in

### BM267 - Introduction to Data Structures

BM267 - Introduction to Data Structures 3. Elementary Data Structures Ankara University Computer Engineering Department BLM267 1 Objectives Learn about elementary data structures - Data structures that

Lecture 11 Doubly Linked Lists & Array of Linked Lists In this lecture Doubly linked lists Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for a Sparse

### International Journal Of Engineering Research & Management Technology

International Journal Of Engineering Research & Management Technology ISSN: 2348-4039 September- 2014 Volume 1, Issue-5 Dynamic Implementation Using Linked List Karuna Department of Information and Technology

### Data Structure with C

Subject: Data Structure with C Topic : Tree Tree A tree is a set of nodes that either:is empty or has a designated node, called the root, from which hierarchically descend zero or more subtrees, which

### Data Structures. Topic #4

Topic #4 Today s Agenda Stack and Queue ADTs What are they Like Ordered Lists, are position oriented Use of Data Structures for Stacks and Queues arrays (statically & dynamically allocated) linear linked

### Application of Stacks: Postfix Expressions Calculator (cont d.)

Application of Stacks: Postfix Expressions Calculator (cont d.) Postfix expression: 6 3 + 2 * = FIGURE 7-15 Evaluating the postfix expression: 6 3 + 2 * = Data Structures Using C++ 2E 1 Application of

STACKS,QUEUES, AND LINKED LISTS Stacks Queues Linked Lists Double-Ended Queues Case Study: A Stock Analysis Applet 1 Stacks Astack is a container of objects that are inserted and removed according to the

### Chapter 7: Queues and Deques

Chapter 7: Queues and Deques After the stack, the next simplest data abstraction is the queue. As with the stack, the queue can be visualized with many examples you are already familiar with from everyday

### LC-3 Data Structures. Textbook chapter 10

LC-3 Data Structures Textbook chapter 10 LC-3 data structures Abstract data structures are Defined by the rules for inserting and extracting data In this section, we will talk about The array The stack

### This lecture. Abstract data types Stacks Queues. ADTs, Stacks, Queues 1. 2004 Goodrich, Tamassia

This lecture Abstract data types Stacks Queues ADTs, Stacks, Queues 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations

### UNIT-1 PART-A UNIT-2 PART-A

UNIT-1 1. Define computer? 2. Discuss briefly about input and output devices? 3. What is a RAM? 4. What is arom? 5. What is a compiler? 6. Write about a linker? 7. List any 5 key wordsof c? 8. Illustrate

Linked Lists Linked Lists, Queues, and Stacks CSE 10: Introduction to C Programming Fall 200 Dynamic data structure Size is not fixed at compile time Each element of a linked list: holds a value points

### Lecture 6b Linked List Variations. Similar but not the same

Lecture 6b Linked List Variations Similar but not the same Linked List Variations: Overview The linked list implementation used in List ADT is known as Singly (Single) Linked List Each node has one pointer

### Sample Questions Csci 1112 A. Bellaachia

Sample Questions Csci 1112 A. Bellaachia Important Series : o S( N) 1 2 N N i N(1 N) / 2 i 1 o Sum of squares: N 2 N( N 1)(2N 1) N i for large N i 1 6 o Sum of exponents: N k 1 k N i for large N and k

### The following themes form the major topics of this chapter: The terms and concepts related to trees (Section 5.2).

CHAPTER 5 The Tree Data Model There are many situations in which information has a hierarchical or nested structure like that found in family trees or organization charts. The abstraction that models hierarchical

Universidad Carlos III de Madrid Algorithms and Data Structures (ADS) Bachelor in Informatics Engineering Computer Science Department Lists, Stacks and Queues. Authors: Isabel Segura Bedmar April 2011

### CHAPTER 4 THE PARALLEL ALGORITHM FOR DETECTION AND EXECUTION OF ARITHMETIC OPERATIONS AT INTRAINSTRUCTION LEVEL

39 CHAPTER 4 THE PARALLEL ALGORITHM FOR DETECTION AND EXECUTION OF ARITHMETIC OPERATIONS AT INTRAINSTRUCTION LEVEL In this chapter the relevant work of parallelism exploitation within a single statement

### Overview of Data Structures

UNIT 3 Concrete Data Types Classification of Data Structures Concrete vs. Abstract Data Structures Most Important Concrete Data Structures Arrays Records Linked Lists Binary Trees Overview of Data Structures

### Introduction to Stacks

Introduction to Stacks What is a Stack Stack implementation using array. Stack implementation using linked list. Applications of Stack. What is a Stack? Stack is a data structure in which data is added

### G. H. RAISONI COLLEGE OF ENGG NAGPUR-16 Session 2006-2007 DEPARTMENT CSE Semester IV SUBJECT DSPD

G. H. RAISONI COLLEGE OF ENGG NAGPUR-16 Session 2006-2007 DEPARTMENT CSE Semester IV SUBJECT DSPD LIST OF EXPERIMENTS 1.Make a database. The record tag,tstudent consists of these fields: Name[20],RollNo.[5],Address[40],Phone[12],UT-1[2,from1

### Unit 5: Recursion Part 3. Application of Recursion to Languages. Grammar. Engineering 4892: Data Structures. June 14, 2011

Unit 5: Recursion Part 3 1 Application of Recursion to Languages Engineering 4892: Data Structures 1 Application of Recursion to Linked Lists Faculty of Engineering & Applied Science Memorial University

### CS 6202 PROGRAMMING & DATA STRUCTURES-I PART-B UNIT-I ANNA UNIVERSITY QUESTIONS

PART-B UNIT-I 1. Write a function that returns a pointer to the maximum value of an array of double s.if the array is empty,return null? (8) Double*maximum(double*a,int size); 2. Write a c program to find

### MLR Institute of Technology

MLR Institute of Technology DUNDIGAL 500 043, HYDERABAD COMPUTER SCIENCE AND ENGINEERING Computer Programming Lab List of Experiments S.No. Program Category List of Programs 1 Operators a) Write a C program

### Size = ub lb + 1. Note that the size of the array = ub if lb=1.

M21: INTRODUCTION: An array is a collection of homogenous data elements (ie elements of same type) described by a single name Each element of an array is referenced by a subscripted variable enclosed in

### TREE BASIC TERMINOLOGIES

TREE Trees are very flexible, versatile and powerful non-liner data structure that can be used to represent data items possessing hierarchical relationship between the grand father and his children and

### Data Structures Using C++

Data Structures Using C++ 1.1 Introduction Data structure is an implementation of an abstract data type having its own set of data elements along with functions to perform operations on that data. Arrays

### St S a t ck a ck nd Qu Q eue 1

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

### EE2204 DATA STRUCTURES AND ALGORITHM (Common to EEE, EIE & ICE)

EE2204 DATA STRUCTURES AND ALGORITHM (Common to EEE, EIE & ICE) UNIT I LINEAR STRUCTURES Abstract Data Types (ADT) List ADT array-based implementation linked list implementation cursor-based linked lists

### TIE-20106 1 TIE-20106 2

TIE-20106 1 1 List structures In this chapter, a few simple data structures (stack and queue) that can be implemented with arrays and/or lists are covered. Two more complex structures based on lists are

### Symbol Tables. Introduction

Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The

### Home Page. Data Structures. Title Page. Page 1 of 24. Go Back. Full Screen. Close. Quit

Data Structures Page 1 of 24 A.1. Arrays (Vectors) n-element vector start address + ielementsize 0 +1 +2 +3 +4... +n-1 start address continuous memory block static, if size is known at compile time dynamic,

### Stacks, Queues and Linked Lists

Stacks, Queues and Linked Lists Adnan Aziz 1 Dynamic sets CLRS Part III, page 197 In mathematics, a set is a well-defined collection of elements (elements could be numbers, functions, geometric shapes);

### 6 Data Structures. 6.1 Quadtree. 6.2 Binary search tree

6 Data Structures 6.1 Quadtree he basic principles of quadtrees have been outlined in the lecture. ollow these steps for the implementation in Java: 1. Download the quadtree.zip file from the course web

### Borland C++ Compiler: Operators

Introduction Borland C++ Compiler: Operators An operator is a symbol that specifies which operation to perform in a statement or expression. An operand is one of the inputs of an operator. For example,

### The largest has a 0 in the sign position and 0's in all other positions:

10.2 Sign Magnitude Representation Sign Magnitude is straight-forward method for representing both positive and negative integers. It uses the most significant digit of the digit string to indicate the

Chapter 7 Linked Lists In order to use linked lists, you need to learn how to allocate memory dynamically on the heap and you need to learn about objects. Recall that local variables are temporary which

C++ How to Program, 8/e 1992-2012 by Pearson Education, Inc. 1992-2012 by Pearson Education, Inc. 1992-2012 by Pearson Education, Inc. We ve studied fixed-size data structures such as one-dimensional arrays

### Chapter 4 Operators & Arithmetic

Chapter 4 Operators & Arithmetic 4-1 Arithmetic in C++ Arithmetic expressions can be made up of constants, variables, operators and parentheses. The arithmetic operators in C++ are as follows + (addition)

### 5. Binary objects labeling

Image Processing - Laboratory 5: Binary objects labeling 1 5. Binary objects labeling 5.1. Introduction In this laboratory an object labeling algorithm which allows you to label distinct objects from a

### Any two nodes which are connected by an edge in a graph are called adjacent node.

. iscuss following. Graph graph G consist of a non empty set V called the set of nodes (points, vertices) of the graph, a set which is the set of edges and a mapping from the set of edges to a set of pairs

### Stacks, Queues & Trees. The Stack Interface. The Stack Interface. Prof. Dr. Harald Gall. Institut für Informatik Universität Zürich

Stacks, Queues & Trees Prof. Dr. Harald Gall Institut für Informatik Universität Zürich http://seal.ifi.uzh.ch The Stack Interface!! Stack!! Data structure holding several items.!! New items added to the