Category: Programming

Dynamic Allocation in C++

C++ provides allocation and deallocation functions ‘new’ and ‘delete’ similar to the malloc() and free() function in C. The main advantage of dynamic allocation is...

C++ References

A reference is essentially an implicit pointer that acts as another name for an object. One important use for a reference is to allow you...

Arrays, Pointers and References in C++

C++ supports implementation of array of objects. Below is a simple implementation of array of objects – Note that we polymorphic constructors that acts upon...

Static Class Members in C++

Static data members are used when only one copy of the variable exists and all the objects of that class share that variable. It is...

Inline Functions in C++

Inline functions are small functions defined with the inline keyword. The advantage of using inline functions are – They do not involve the usual stack...

Friend Classes and Functions in C++

When a function is declared as friend, it is not a member of any class. But it could access the private and protected parts of...

C++ Classes and Structures

Structure is similar to Class except for the fact that in structure declaration, all the members are public otherwise specified as private. For example –...

C++ Keywords

C++ provides a wide range of Keywords and much extensive than C programming offers. Below are the commonly used Keywords (reserved). alignas Used to precisely...

Unions and Classes in C++

C++ also supports unions as in C. They are functionally similar to that of a class but has the following limitations: All members are public...

Constructors & Destructors in C++

Constructor and Destructor functions are used in a class so as to automatically perform certain operations when an object of that class type is created...

Inheritance in C++

Inheritance is the property of representing a base class and its derived classes as a hierarchy of classes with the most general functions of the...

Operator Overloading in C++

C++ provides options to overload an operator with more than one function. For eg: C++ overloads the operators << and >> with functions of performing...

Function Overloading in C++

The principle of function overloading helps to implement polymorphism in C++ in which two or more functions share the same name (overloaded functions) and perform...

Classes and Objects in C++

Classes are logical abstractions while Objects are instances of the classes that physical existence in the memory. Syntax for class declaration – We could use...

Ada – The Veteran Programming Language

Ada, a descendent programming language mainly of Pascal, is a statically and strong typed, structured and imperative programming language that inherently supports pure object oriented...

Software Metrics and Models

Software metrics refers to measuring the software qualitatively and quantitatively so that we arrive at a perfect assessment of software quality and other attributes of...

Software Availability

Software Availability is defined as expected fraction of time for which a component or a system is functioning acceptably. If a program has a constant...

Software Reliability Metrics

Software Reliability Metrics relates to measurements made for assessing software reliability. Most of these software reliability metrics evolved from the earlier hardware reliability metrics. The...

Software Faults

Software Faults Software reliability depends heavily on defects in a software product and a repair activity undergone to correct them consequently as an entity to...

Software Reliability

The three of the most important Software product characteristics are – Quality, Cost and Schedule. Quantitative measures exist for cost and schedule. But quantification of...

Software Cost Estimation

Estimating Software cost is an art. Software Sizing is important since the accuracy of the Software Project Estimation depends on – the extend to which...

Factors Affecting Software Cost

Its useful for a Software Practitioner to understand the factors affecting Software Cost in order to arrive at close to perfect cost estimates. Most of...

Programming Team Structures

We have seen traditional and recently popular Software Development Team Structures. Now let us discuss on some specific team structures for the Programming or the...

Software Development Team Structures

In this article we will start by reflecting upon some traditional software development team structures. This will help us appreciate where we came from. Some...

Depth First and Breadth First Traversal

Depth first traversal of a Graph could be used to traverse a directed or un-directed graph and thus creating a spanning tree. Depth first traversal...

Linked representation of Graphs in C

There are many in-inadequacies in using the Adjacency Matrix representation of Graphs. Once such inadequacy is the difficulty in adding or deleting nodes while data...

Representing Graphs and Networks in C

A Graph is a data structure that consists of a set of nodes interconnected by directed or un-directed arcs. For a DIRECTED Graph, the ordered pair of nodes...

Merge and Radix Sorts

Merge Sort Merge Sort is a process of combining more than one sorted files into a single sorted file. The procedure is to divide a...

Insertion Sort and its implementation in C

Insertion Sort is a simple implementation of the general straight selection sort. A simple routine for insertion sort can be written as below – void insertionsort(int...

Binary Tree Sort in C

Binary Tree Sort uses a Binary search tree. The various steps involved in such a sort would be – Construct a binary tree with the given...

Selection Sort

A Selection sorting technique uses a general algorithm which uses an ascending or descending priority queue. The idea would be to pre-process input array X[i] into...

Bubble Sort in C

Lets explain Bubble sort by illustrating tow specific examples involving steps where smaller numbers bubbles to first and when larger numbers bubbles to last. Number...

Efficiency and Order of a Sorting Program

Efficiency Considerations The following are the efficiency considerations while planning for a sorting program / algorithm – Time required to code the program and the...

Efficiency of Recursion

In general cases, a non-recursive program runs more efficiently than a recursive program since a recursive program requires more execution time to enter and exit...

Recursion in C

Recursion Recursion and Iteration are two different concepts of achieving a result by a number of repeated operations. Iteration involves use of for, while and...

Doubly Linked Lists

Doubly Linked lists eliminates below drawbacks of circular lists – not able to traverse backward not able to delete and node given only points to...

Dynamic Circular Linked Lists in C

Circular lists eliminates same drawbacks of linear lists. In as circular list it is assumed that items are inserted at the front and the list...

Dynamic Linked Lists as Queues in C

When Dynamic Linked Lists are represented as Queues, the first node represents front of queue given by q.front and last node represents the rear of...

Implementing Dynamic Linked Lists in C

List is a type of dynamic data structure which rectifies certain drawbacks of Stacks and Queues. Lists generally uses the concept of pointers which points...

Queues and its implementation in C

A Queue is a First In First Out (FIFO) which is an ordered collection of items which are deleted at the front end and inserted...

Game Trees

Game Tree is one of the applications of Binary Trees. For example the one implemented for the Tic-Tac-Toe Game. X | X | X O...

Traversing a Binary Tree in C

There are generally 3 traversal strategies for Binary Trees – INORDER, PREORDER and POSTORDER. For eg:, the inorder, preorder and postorder traversal of an expression tree...