A Fully-Functional Static and Dynamic Succinct Trees

... O(n/(log log n)2 ) bits [Lu and Yeh 2008]. Ours requires O(n/ logc n) bits for all of the operations. We show in the Conclusions that this redundancy is optimal if a core subset of the operations is to be supported. The simplicity and space-efficiency of our data structures stem from the fact that a ...

... O(n/(log log n)2 ) bits [Lu and Yeh 2008]. Ours requires O(n/ logc n) bits for all of the operations. We show in the Conclusions that this redundancy is optimal if a core subset of the operations is to be supported. The simplicity and space-efficiency of our data structures stem from the fact that a ...

New data structures and algorithms for the efficient management of

... First I would like to thank my advisors, Nieves and Gonzalo, for their support throughout this work, the knowledge they transmitted to me, and also their advice and dedication from the first ideas to the final review of this thesis. I also want to thank all the members of the Databases Laboratory, m ...

... First I would like to thank my advisors, Nieves and Gonzalo, for their support throughout this work, the knowledge they transmitted to me, and also their advice and dedication from the first ideas to the final review of this thesis. I also want to thank all the members of the Databases Laboratory, m ...

STACK ADT

... and one called top which indicates the top element in the stack. For simplicity, we assume that actually top indicates what is the position of the array which comes after the top element—this allows us to use top directly for inserting new elements and allows us to avoid designing special values for ...

... and one called top which indicates the top element in the stack. For simplicity, we assume that actually top indicates what is the position of the array which comes after the top element—this allows us to use top directly for inserting new elements and allows us to avoid designing special values for ...

space-efficient data structures for string searching and retrieval

... search engines use inverted index as the back-bone data structure. For each word occurring in the document collection, the inverted index stores the list of documents where it appears. It is often augmented with relevance score and/or positional information. However, when data consists of strings (e ...

... search engines use inverted index as the back-bone data structure. For each word occurring in the document collection, the inverted index stores the list of documents where it appears. It is often augmented with relevance score and/or positional information. However, when data consists of strings (e ...

string searching with ranking constraints and uncertainty

... We shall use D = {T1 , T2 , . . . , TD } for denoting the string collection of D strings of n characters in total. In this case, a natural problem is to preprocess D and maintain it as a data structure, so that, whenever a pattern P [1 . . . p] comes as a query, those documents where P occurs at lea ...

... We shall use D = {T1 , T2 , . . . , TD } for denoting the string collection of D strings of n characters in total. In this case, a natural problem is to preprocess D and maintain it as a data structure, so that, whenever a pattern P [1 . . . p] comes as a query, those documents where P occurs at lea ...

In computer science, a linked list is a data structure consisting of a group of nodes which together represent a sequence. Under the simplest form, each node is composed of data and a reference (in other words, a link) to the next node in the sequence; more complex variants add additional links. This structure allows for efficient insertion or removal of elements from any position in the sequence.Linked lists are among the simplest and most common data structures. They can be used to implement several other common abstract data types, including lists (the abstract data type), stacks, queues, associative arrays, and S-expressions, though it is not uncommon to implement the other data structures directly without using a list as the basis of implementation.The principal benefit of a linked list over a conventional array is that the list elements can easily be inserted or removed without reallocation or reorganization of the entire structure because the data items need not be stored contiguously in memory or on disk, while an array has to be declared in the source code, before compiling and running the program. Linked lists allow insertion and removal of nodes at any point in the list, and can do so with a constant number of operations if the link previous to the link being added or removed is maintained during list traversal.On the other hand, simple linked lists by themselves do not allow random access to the data, or any form of efficient indexing. Thus, many basic operations — such as obtaining the last node of the list (assuming that the last node is not maintained as separate node reference in the list structure), or finding a node that contains a given datum, or locating the place where a new node should be inserted — may require sequential scanning of most or all of the list elements. The advantages and disadvantages of using linked lists are given below.