Skip to main content

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:-

  1. Maximum two children.
  2. Left child is smaller than parent.
  3. 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

Post Order Traversal (left, right, root)
Eg: 4, 16, 12, 28, 32, 25


Height of tree is given by formula 2(h-1)

Deletion in a tree:-

There lies 3 cases:-
  1. When node to be deleted is a leaf node. 
  2. The node has a single child. 
  3. The node has two children. In this case find the predecessor or successor of that particular node, which is Greatest node in the Left subtree or Smallest node in the Right subtree. Replace the concerned node with any of the two.


Comments

Popular posts from this blog

Appian UUID vs ID

IDs in Appian:- There are 2 kinds of IDs which are observed in Appian namely UUIDs and IDs. Let’s go through them briefly.  Many of the functionalities are covered by Smart Services hence the explicit use of Ids are reduced or those can be done by relational database entries in some special cases. Sources: Appian Documentation Appian Community

Creating first Application in Appian BPM

Appian is well-equipped with Business Process Management (BPM) and Case Management capabilities. From a viewpoint it’s also pretty efficient like its counter parts such as  Pegasystems, TIBCO, INFOR etc. We will be going through a series of features, tips and the practices which may be helpful in giving a better insight. To Kick off, let’s have a look on how to kick off an application in Appian within seconds. Now In Appian there are 3 ways you can create an application. 1. From Scratch 2. Using Application Builder (Basic) 3. Using Application Builder (Full) When we create from Scratch then we need to give “Name” and “Description”. It’s like Appian will just create a placeholder to create and build related objects. When using builder we need to give “Data Source” beforehand.   In addition to process model and interfaces, this full application option will also create objects related to reporting documentation and task etc. It has created around ...

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...