Skip to main content

Posts

Showing posts with the label Data Structure

Picking the structure!!

Use of arrays, rather sorted arrays or a linked list is somewhat difficult because both have their pros and cons.  Arrays excel when we have to perform a binary search while it’s faster to add and remove elements from linked lists.  A tree is one structure where there is ONLY ONE path to reach to a node. This can be explained further as “Nodes cannot be in closed loop” . Also there is a hierarchical relationship of parent and child. The average complexity varies from logarithmic to linear time. Now coming further to a data structure BSTs aka Binary Search Trees . Points to be remembered here:- Maximum two children. Left child is smaller than parent. Right one is greater than parent. Traversals :-   In order Traversal Ascending Sort; left subtree + root+ right subtree. So the above tree will look like:  4, 12, 16, 25, 28, 32 Pre order Traversal Root + left subtree + right subtree recursively. Eg: 25, 12, 4, 16, 32, 28 Po...

Simple Queue Implementation using Python

Stacks and Queues are not data structures, they are basically abstract data types. The simple data structure can be an array or a linked list. Queues are FIFO.. First In and First Out. Queues do have real world operations like:- 1.    Token System 2.    Organising data to archive based on age. 3.    Scheduling 4.    Any task which involves first come first serve basis. Below is a simple implementation of Queue using Python. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 class Queue : def __init__ ( self ): self . queue = [] def isEmpty ( self ): return self . queue == [] def enqueue ( self , data): self . queue . append(data) def dequeue ( self ): data = self . queue[ 0 ] del self . queue[ 0 ] return data def peek ( self ): return se...