Skip to main content

All you need is RIGHT Data Structures at RIGHT implementation.

So, lets erase the confusion of what, which, when the data structure to be used through this article.
As part of academic we are well known that, data structures are classified into Linear and Non-Linear Data Structures.

Linear are the Data Structures like Array, Sorted Array, Stack, Queue, Linked List.
Non-Linear are the Data Structures Like Binary Tree, Red-Black Tree, 2-3-4 Tree, Graph, Hash Table, Heap

Array:
Advantages:
1. Quick Insertion
2. Quick Access of any element in the array
Disadvantages:
1. Slow Deletion
2. Slow Search

Sorted Array:
Advantages:
1. Quick Search
2. Quick Access of any element
Disadvantages:
1. Slow Deletion, Insertion

Stack:
Advantages:
1. Last In First Out access
Disadvantages:
1. Slow Access, Search for remaining elements

Queue:
Advantages:
1. First In First Out Access
Disadvantages:
1. Slow Access, Search for other elements

Linked List:
Advantages:
1. Quick Insertion, Deletion
Disadvantages:
1. Slow Search

Binary Tree:
Advantages:
1. Quick Search, Insertion, Deletion ( If the Tree is BALANCED )
Disadvantages:
1. Deletion Algorithm is complex

Red-Black Tree:
Advantages:
1. Quick Search, Insertion, Deletion ( Tree is ALWAYS BALANCED )
Disadvantages:
1. Complex

2-3-4 Tree:
Advantages:
1. Quick Search, Insertion, Deletion ( Tree is ALWAYS BALANCED )
2. Good for Disk Storage
Disadvantages:
1. Complex

Hash Table:
Advantages:
1. Fast Access if the key is known
2. Fast Insertion
Disadvantages:
1. Slow Access, Insertion

Heap:
Advantages:
1. Fast Insertion, Deletion
2. Fast Access to the largest item
Disadvantages:
1. Slow Access to the remaining items

Comments

Popular posts from this blog

Sexy C#

Download samples   Table of Contents   1.   Introduction  2.   Background    3.   Sexy Features 3.1.   Extension Methods   3.2.   Anonymous Type   3.3.   Delegate   3.4.   Lambda Expression 3.5.   Async-Await Pair   3.6.   Generics   4.   Conclusion   1. Introduction     C#  is a very popular programming language. It is mostly popular in the .NET arena. The main reason behind that is the C# language contains so many useful features. It is actually a multi-paradigm programming language. Q.   Why do we call C# a muti-paradigm programming language? A.  Well, C# has the following characteristics:  Strongly typed   Object Oriented  Functional  Declarative Programming  Imperative Programming   Component based Programming Dynamic Programming ...

Banyan VINES

Banyan VINES Banyan Virtual Integrated Network Service (VINES) implements a distributed network operating system based on a proprietary protocol family derived from the Xerox Corporation's Xerox Network Systems (XNS) protocols. VINES uses a client/server architecture in which clients request certain services, such as file and printer access, from servers. This article provides a summary of VINES communications protocols. The VINES protocol stack is illustrated in  Figure: The VINES Protocol Stack Consists of Five Separate Levels . Guide Contents Internetworking Basics LAN Technologies WAN Technologies Internet Protocols Bridging and Switching Routing Network Management Voice/Data Integration Technologies Wireless Technologies Cable Access Technologies Dial-up Technology Security Technologies Quality of Service Networking Network Caching Technologies IBM Network Management Multiservice Access Technologies Contents   [ hide ] 1   Figure:...

Running Openstack into Linux Containers (LXC on Debian)

The devstack project is an interesting tool to deploy a complete OpenStack development environment from source code. I’ve been using it from one year in my development activities on Neutron. For that, I set up an isolated VM (libvirt or VirtalBox through Vagrant), but I found that environment isn’t very efficient (too slow and uses lot of memory). Furthermore, when you developing network stack, you need to set up more than one node (three is a good number to test network virtualization). This is why I try to set up that environment into containers (LXC). Setup LXC environment I work on Debian testing release (Jessie) which uses the kernel 3.11 release. devstack supports Debian distribution thanks to the  Emilien Macchi’s commit . I use LXC experimental Debian package to be able to use the new template ‘lxc-debconfig’ which is more efficient when deploying a Debian container and; it can use preseed config file to set up the container: $ sudo 'deb http://ftp.debian.org/debian ...