Archive for category Data Structures

How to convert a byte array to a Hex String in Java

When processing binary values it is very difficult to read or to display them because any printing function generates a String value.  The problem with this approach is that not all byte values can be interpreted as a printable char (i.e. the 0 binary value represents the NUL symbol; for more details check ASCII Codes + HTML Codes and Special Characters) and the resulting String will not contain all the byte values or it will not be accurate. Moreover in Java a char is stored on 2 bytes.

In this post we will see how to convert a byte array to a Hex String in a Java application. The solution is useful because:

• printing binary values in base 2 or base 10 format can become difficult to read as the value can have multiple digits;
• it is easier to check or compare values in hexadecimal base.

C and C++ library of functions and procedures for matrix (bidimensional arrays) – Comparison functions

The comparison functions used for matrix processing are needed for finding more information about a matrix or group of matrices from the point of view of: the matrix type, its elements type or the apparition number of a key in the matrix.

The function symmet checks if a matrix is a square or a symmetrical one. It gets as entry parameters the matrix’ lines and columns numbers, which are n and m, and the matrix X. The matrix is defined static. The function returns the address of an integer variable, *er, where it writes 1 if the matrix is symmetrical or 0 if the matrix isn’t symmetrical. Also it verifies if the matrix is a square one and it writes 0 at the integer variable’ address if the condition isn’t fulfilled.
Read the rest of this entry »

C and C++ library of functions and procedures for matrix (bidimensional arrays) – Mathematical functions

Other posts on this topic:

The mathematical functions uses the matrices as operands in different math operations. The operations with matrices described in this chapter are adding, multiplying, transposing, subtracting and inverting. Also here are some arithmetical operations with linear matrices like adding, subtracting, multiplying and transposing. For example, two linear matrices sum is obtained after transforming the matrices in one-dimensional arrays and adding them. In the same way are done the others operations.

In this post are described the functions that are doing those computations. Both variants of defining a matrix, the static method and the dynamic one, are used. Read the rest of this entry »

How to: Transform a Mathematical Expression from Infix Writing to Postfix Writing in C++

Postfix writing (Reverse Polish Form) was made by Polish mathematician Jan Łukasiewicz. Particularities of this form of writing mathematical expressions are presented in [...].
An algorithm for transforming a writing mathematical expressions from infix to postfix writing was developed by Edsger Dijkstra (Dijkstra Shunting Algorithm).
Read the rest of this entry »

How to: Evaluate a Mathematical Expression in Postfix Writing in C++

Postfix writing [...] is a form of representation of mathematical expressions in which arithmetic operatorsare written specified by operands.
Advantages of postfix writing over prefix and infix writing:

• Highlights clear policy of making operations;
• Brackets for forcing priority for implementing operators are not necessary;
• Evaluations are easily performed by computer.

C and C++ library of functions and procedures for matrix (bidimensional arrays) processing – Read and Write functions

To realize a real computation of matrices it must exist in the first place the matrix or the matrices. Having created an inadequate object for work with it, the results would be unexpected. Therefore we must pay the necessary attention to those functions that are creating a matrix. In this way we won’t have any future troubles.

Matrix processing contains also a sequence of in and out functions. These functions role is:

• to create a matrix from the console when using the library matrix.h or one with all its elements equal with zero when using the class matrix constructor.
• to list a matrix on the computer’ screen

Because the library matrix.h uses a matrix with constant dimensions, and the class matrix uses a dynamic declared matrix, defined with the help of a pointer, both versions of the creating function are described in this chapter.
Read the rest of this entry »

C and C++ library of functions and procedures for matrix (bidimensional arrays) processing – Introduction

Library source: C and C++ library of functions and procedures for matrix processing

Language: C / C++
Date: 04.2002
Authors: Catalin Boja si Niculescu Silviu

This post main objective is to tackle a series of aspects regarding the creation of a library that contains functions necessary in resolving the problems with matrices.

First chapters are containing initialization, listing on screen and computing subprograms. The last ones present this problem objective approach.

It has been created a library specialized in matrix computation that it is used for resolving real life problems.

As this paper main approach is the matrix processing, it will be made some references that will help the user understanding this text and the programs.

How to: Implement Operations on Stack and Queue Data Structures in C++

Stack is a logical data structure, its implementation in physical memory being made by using other data structures.
The components of the stack data structure have the same data type, which means that the stack is a homogeneous data structure.
There are two basic operations with stack: adding and removal of an item.
Manner of implementation for operations is given by the discipline of access: LIFO – Last In First Out.
All adds (push) and extractions (pop) are achieved at the same end of the implementation structure, called the stack top.
Read the rest of this entry »

How to: Create a DLL – Dynamic Link Library in C++ as Visual Studio 2008 Project

Using DLL ensure productivity and/or financial gain in the software development process by reusing the source code written C++. Routines and/or programming components included in a DLL are referenced in the application without the need of their re-implementation in these applications.
Read the rest of this entry »

How to: Optimize the Memory Space by Heap Memory Allocation in C++

Memory allocation at the applications run-time enables the use of a storage space, expressed in number of bytes, having the size of heap memory required for data storing defined by the variables. Compile-time allocation allows the reservation and use of storage space with predefined size expressed in number of bytes. In this situation, software developers must anticipate the maximum size of memory space that can be used in the application.
Read the rest of this entry »