PROGRAMMING DATA STRUCTURE ALGORITHMS IN PYTHON

2021 ◽  
Vol 73 (1) ◽  
pp. 134-141
Author(s):  
A.R. Baidalina ◽  
◽  
S.A. Boranbayev ◽  

The article discusses ways of programming algorithms for complex data structures in Python. Knowledge of these structures and the corresponding algorithms is necessary when choosing the best methods for developing various software. When studying the subject "Algorithms and Data Structures", it is important to understand the essence of data structures. This is due to the fact that manipulating a data structure to fit a specific problem requires an understanding of the essence and algorithms of this data structure. Examples of programming algorithms related to dynamic lists and binary search trees in the currently widely used Python language are given. The algorithms for traversing the graph in depth and breadth are optimally and clearly implemented using the Python dictionary.

2012 ◽  
Vol 22 (04) ◽  
pp. 327-340 ◽  
Author(s):  
JOHN IACONO ◽  
WOLFGANG MULZER

Over the last decade, there have been several data structures that, given a planar subdivision and a probability distribution over the plane, provide a way for answering point location queries that is fine-tuned for the distribution. All these methods suffer from the requirement that the query distribution must be known in advance. We present a new data structure for point location queries in planar triangulations. Our structure is asymptotically as fast as the optimal structures, but it requires no prior information about the queries. This is a 2-D analogue of the jump from Knuth's optimum binary search trees (discovered in 1971) to the splay trees of Sleator and Tarjan in 1985. While the former need to know the query distribution, the latter are statically optimal. This means that we can adapt to the query sequence and achieve the same asymptotic performance as an optimum static structure, without needing any additional information.


Sensors ◽  
2021 ◽  
Vol 21 (24) ◽  
pp. 8241
Author(s):  
Mitko Aleksandrov ◽  
Sisi Zlatanova ◽  
David J. Heslop

Voxel-based data structures, algorithms, frameworks, and interfaces have been used in computer graphics and many other applications for decades. There is a general necessity to seek adequate digital representations, such as voxels, that would secure unified data structures, multi-resolution options, robust validation procedures and flexible algorithms for different 3D tasks. In this review, we evaluate the most common properties and algorithms for voxelisation of 2D and 3D objects. Thus, many voxelisation algorithms and their characteristics are presented targeting points, lines, triangles, surfaces and solids as geometric primitives. For lines, we identify three groups of algorithms, where the first two achieve different voxelisation connectivity, while the third one presents voxelisation of curves. We can say that surface voxelisation is a more desired voxelisation type compared to solid voxelisation, as it can be achieved faster and requires less memory if voxels are stored in a sparse way. At the same time, we evaluate in the paper the available voxel data structures. We split all data structures into static and dynamic grids considering the frequency to update a data structure. Static grids are dominated by SVO-based data structures focusing on memory footprint reduction and attributes preservation, where SVDAG and SSVDAG are the most advanced methods. The state-of-the-art dynamic voxel data structure is NanoVDB which is superior to the rest in terms of speed as well as support for out-of-core processing and data management, which is the key to handling large dynamically changing scenes. Overall, we can say that this is the first review evaluating the available voxelisation algorithms for different geometric primitives as well as voxel data structures.


2020 ◽  
Vol 23 (1) ◽  
Author(s):  
Sylvia Rita Da Rosa ◽  
Federico Gabriel Gómez

This paper presents a research model in didactics of programming elaborated within the theoretical framework of the epistemological theory of Jean Piaget. That theory explains the construction of scientific knowledge based on empirical studies made by Piaget over many years. The model arises from the analysis of the results of the application of principles of the theory, especially the triad of intra-inter-trans stages, to the empirical study of the construction of the concepts of algorithm, data structure and program. The elaboration of the model is a contribution to the development of the didactics of programming and, in general, of the didactics of computer science, since the model can be used in other computer science topics. Didactics is a specific area within computer science, with its own foundations and methods, which studies in depth topics related to education in the discipline. Two empirical studies about the construction of knowledge of algorithms and data structures, and of the corresponding programs as executable objects, are briefly described to illustrate the model.Both examples use a search algorithm (binary and linear) and the implementations are in the programming language C.


2007 ◽  
Vol 10 (1) ◽  
Author(s):  
Jorge Villalobos ◽  
Danilo Pérez ◽  
Juan Castro ◽  
Camilo Jiménez

In a computer science curriculum, the data structures course is considered fundamental. In that course, students must generate the ability to desingn the more suitable data structures for a problem solution. They must also write an efficient algorithm in order to solve the problem. Students must understand that there are different types of data structures, each of them with associated algorithms of different complexity. A data structures laboratory is a set of computional tools that helps students in the experimentation with the concepts introduced in the curse. The main objetive of this experimentation is to generate the student's needed abilities for manipulating complex data structure. This paper presents the main characteristics of the laboratory built as a sopport of the course. we illustrate the huge possibilities of the tool with an example.


Author(s):  
DON BATORY ◽  
VIVEK SINGHAL ◽  
MARTY SIRKIN

We present a model of the data structure domain that is expressed in terms of the GenVoca domain modeling concepts [7]. We show how familiar data structures can be encapsulated as realms of plug-compatible, symmetric, and reusable components, and we show how complex data structures can be formed from their composition. The target application of our research is a precompiler for specifying and generating customized data structures.


Author(s):  
Ranjit Biswas

The homogeneous data structure ‘train' and the heterogeneous data structure ‘atrain' are the fundamental, very powerful dynamic and flexible data structures, being the first data structures introduced exclusively for big data. Thus ‘Data Structures for Big Data' is to be regarded as a new subject in Big Data Science, not just as a new topic, considering the explosive momentum of the big data. Based upon the notion of the big data structures train and atrain, the author introduces the useful data structures for the programmers working with big data which are: homogeneous stacks ‘train stack' and ‘rT-coach stack', heterogeneous stacks ‘atrain stack' and ‘rA-coach stack', homogeneous queues ‘train queue' and ‘rT-coach queue', heterogeneous queues ‘atrain queue' and ‘rA-coach queue', homogeneous binary trees ‘train binary tree' and ‘rT-coach binary tree', heterogeneous binary trees ‘atrain binary tree' and ‘rA-coach binary tree', homogeneous trees ‘train tree' and ‘rT-coach tree', heterogeneous trees ‘atrain tree' and ‘rA-coach tree', to enrich the subject ‘Data Structures for Big Data' for big data science.


1999 ◽  
Vol 9 (1) ◽  
pp. 93-104 ◽  
Author(s):  
RALF HINZE

Functional programming languages are an excellent tool for teaching algorithms and data structures. This paper explains binomial heaps, a beautiful data structure for priority queues, using the functional programming language Haskell (Peterson and Hammond, 1997). We largely follow a deductive approach: using the metaphor of a tennis tournament we show that binomial heaps arise naturally through a number of logical steps. Haskell supports the deductive style of presentation very well: new types are introduced at ease, algorithms can be expressed clearly and succinctly, and Haskell's type classes allow to capture common algorithmic patterns. The paper aims at the level of an undergraduate student who has experience in reading and writing Haskell programs, and who is familiar with the concept of a priority queue.


Author(s):  
María Victoria López ◽  
Gladys N. Dapozo ◽  
Cristina L. Greiner ◽  
María C. Espíndola

Se presenta una metodología de enseñanza que utiliza un entorno virtual como apoyo a las actividades presenciales de la asignatura Algoritmos y Estructuras de Datos I de la carrera Licenciatura en Sistemas de Información de la Universidad Nacional del Nordeste en Argentina, cuyo objetivo es contribuir a la organización de las actividades y la comunicación con los alumnos, además de aportar a su formación disciplinar específica.Virtual environment to support computer training at a university in northeastern argentinaAbstractIt presents a teaching methodology that uses a virtual environment to support classroom activities of the subject "Algorithms and Data Structures I" of the career of Information Systems from the Universidad National del Nordeste in Argentina, which aims to contribute to the organization activities and communication with students, besides providing training to its specific discipline.


Sign in / Sign up

Export Citation Format

Share Document