Free Essay

# Treap Data Structure

Submitted By meramesh
Words 1803
Pages 8
Assignment: Binary Search Tree + Heap = Treap
October 10, 2012
Binary search tree, as shown in ﬁgure 1, is a binary tree data structure which is used to hold key-value pairs and satisﬁes following properties; • The left subtree of any node contains only those nodes with keys less than the node’s key. • The right subtree of any node contains only those nodes with keys greater than the node’s key. key=10 val="AU"

key=8 val="BN"

key=15 val="TN"

key=12 val="NZ"

key=17 val="DL"

key=19 val="IN"

Figure 1: An example Binary Search Tree These ordering constraints help to ﬁnd out a node with a given key in O(log n) average time. Insertion and deletion operations in BST (Binary search tree) must maintain these ordering constraints. prio: 8 val: "IN"

prio: 15 val: "NZ"

prio: 18 val: "AU"

prio: 25 val: "TN"

prio: 30 val: "BN"

prio: 20 val: "AP"

prio: 22 val: "RS"

Figure 2: An example min-heap Heap is an another binary tree data structure, as shown in ﬁgure 2, which is useful in sorting (heapsort) and implementing a priority queue. A heap can be a min-heap or a max-heap based on the priority of a node with respect to the 1

priority of its left and right children. In case of min-heap each node has lesser priority than its children. In case of max-heap each node has higher priority than its children. In this assignment we are going to implement a binary tree data structure which is a combination of BST and heap. This data structure is called Treap. Treap Treap is a binary tree data structure where each node contains 3 attributes; • Priority: This is used to maintain the heap status of treap. Each node in a Treap must have lower priority than its children. (in case of min-heap). • Key: This is used to maintain the BST status of treap. Every node in the left sub-tree of a node must have lesser key numbers than node’s key. Similarly every node in the right sub-tree of a node must have larger key numbers than node’s key. • Value: This represents the actual value stored in a node. prio:62 key:490 val:"IN"

prio:70 key:310 val:"AU"

prio:80 key:520 val:"BN"

prio:90 key:225 val:"SN"

prio:100 key:400 val:"TU"

prio:105 key:500 val:"TN"

prio:110 key:540 val:"PK"

Figure 3: An example treap An example treap is shown in ﬁgure 3 which satisﬁes the properties of BST, with respect to “key”, and the properties of min-heap, with respect to “priority”. Following operations are deﬁned over a treap T . • search(key): Given a key k ﬁnd out the value associated with this key, if any, present in T . For example, calling function search(400) on the treap of ﬁgure 3 returns “TU”. On the other hand, search(420) returns -1 denoting that there is no node in the treap matching this key. • deletion(key): Given a key k deletes that node of T whose key matches with k. Based on the type of deleted node, internal node or leaf node, treap is adjusted (changed) so as to satisfy the Treap invariants (ordering constraints over priorities and keys). • insertion(key, value, priority): Given a key k, value v and priority p this function inserts a node having these attributes at appropriate position in T . This method should make sure that the invariants of Treap are satisﬁed after this insertion. Note that insertion happens according to the BST property and then if any heap order violations occur, procedure similar to AVL trees is applied. 2

• changing the priority (key, newpriority): Given a key k it ﬁrst searches for a node in T whose key matches with k. If such a node is found then its priority is changed to newpriority. As a result of this change the Treap invariants might get violated. Appropriate steps must be taken to establish these invariants again in T . Problem statement There are two parts of this assignment. First, you have to implement treap data structure by writing a class Treap and associated methods as below. Listing 1: An empty public java class. class Treap { int mKey ; int mValue ; int mPriority ; Treap mLeft = null ; Treap mRight = null ; // Other attributes / variables of this class as needed . public int Search ( int key ) throws K e y N o t F o u n d I n T r e a p {

} public Treap Delete ( int key ) throws K e y N o t F o u n d I n T r e a p {

} public Treap Insert ( int key , int value , int priority ) throws K e y A l r e a d y E x i s t s I n T r e a p { } public Treap ModifyPriority ( int key , int newpriority ) throws K e y N o t F o u n d I n T r e a p { }

public void DumpTreap ( String filename ){ } // Other methods of this class as needed . }

You can add more methods and attributes to this class depending upon your implementation. You will also implement exception classes KeyAlreadyExistsInTreap and KeyNotFoundInTreap which are used to denote whether or not a given key

3

exits in a given treap. In the second part of this assignment you will use your implementation of Treap class to give following command line user interface.

Press any number (1 -6) to denote your choice : 1. Insert a node in the treap 2. Delete a node in the treap 3. Search a node in the treap 4. Modify the priority of a node 5. Output the treap data structure to a file 6. Exit from this menu

digraph G { 0 [ color = " Black " , label = " Key :1 , Value :23 , Prio :3 " ]; 1 [ color = " Blue " , label = " Key :2 , Value :3 , Prio :5 " ]; 2 [ color = " Red " , label = " Key :5 , Value : 19 , Prio :2 " ]; 0 - >1; 0 - >2; }

Every dot ﬁle starts with digraph G. Line 2, 3 and 4 describe nodes of this graph. Each of these lines start with an integer which uniquely identiﬁes a given node. Rest of the text (in between square brackets) deﬁne properties of this node. In our case we want to print the key, value and the priority of that node. Therefore we put all these things as label of that node. You will notice that in lines 2, 3 and 4 while deﬁning a node we also specify its color. We will follow the convention that if a node is a left child of its parent then it must be in blue color, if it is right child of its parent then it must be in red color and the root node must be black in color. After specifying all nodes and their properties now we need to specify their connections. Last two lines (0− > 1) and (0− > 2) denotes that the node denoted by integer 0 (deﬁned in line 2) is connected to the node denoted by integer 1 (deﬁned in line 3). Notice that this is a directed relationship and therefore 0 is the parent of 1. Similarly in line 6, (0− > 2) denotes that node 0 is connected to node 2. Also note that 1 is the left child of 0 because color of node 1 is described as blue according to the above convention and similarly for node 2. For any node, the node property should be described before assigning it as child of any other node. Let us assume that the output ﬁle used for dumping treap in dot format is “a.dot”. Now we can use one of these very useful graphviewer tools; dotty (available for linux) or Graphviz (for windows you can download it from http://www.graphviz.org/) for visualizing the current state of treap. These tools graphically render the graph speciﬁed in dot format. Following command is used to view the tree dumped in this dot ﬁle. • dotty a.dot It is recommended that you ﬁrst complete the implementation of dumpTreap function (to dump your treap in dot format) so that you can graphically visualize the outcome of your insert, delete, modifypriority operations and debug them.

5

### Similar Documents

#### Test

...This general problem is known as the vehicle routing problem.Solving the vehicle routing problem involves determining how many vehicles are required to service the destinations, and developing a route and schedule for each one. Because there are many variations of the problem, it can be very dillicult to solve. TransCAD provides a rich set of vehicle routing tools that solve various types of routing problerns,These tools are used to prepare input data, solve the routing problem, and provide tabular and graphical output of the resulting routes and vehicle schedules. The starting points for each route (such as the warehouse in the above example) are known as depots, and the points to be visited are known as stops. A vehicle route starts at a depot, visits one ormore stops, and may or may not return to the depot. The goal of the procedure is to obtain a set of routes that minimizes the total time or discance traveled by the entire fleet of vehicles. The travel times or distances are stored in the vehicle routing matrix.You can use a network to calculate the network driving time or distance, or you can use straight line distances to create your vehicle routing matrix. You must use a network-based vehicle routing matrix if you want to display the routes on a map as a route system layer.Time window- There are time restrictions on when deliveries can be made to some or all of the stores Each stop requires a certain amount of time to service. The service time can have a fixed......

Words: 3610 - Pages: 15

Free Essay

#### Continuous Skyline Queries for Moving Objects

...Omar Khairy El -Morsy ABSTRACT The literature on the skyline algorithms so far mainly deal with queries for static query points over static datasets. With the increasing number of mobile service applications and users, the need for continuous skyline query processing has become more pressing. The continuous skyline operator involves not only static but also dynamic dimensions. In this paper, we examine the spatio-temporal coherence of the problem and propose a continuous skyline query processing strategy for moving query points. First, we distinguish the data points that are permanently in the skyline and use them to derive a search bound. Second, we investigate into the connection between data points’ spatial positions and their dominance relationship, which provides an indication on where to ﬁnd changes of skyline and how to update the skyline continuously. Based on the analysis, we propose a kinetic-based data structure and an eﬃcient skyline query processing algorithm. We analyze the space and time costs of the proposed method and conduct an extensive experiment to evaluate the proposal. To the best of our knowledge, this is the ﬁrst work on continuous skyline query processing. shown in Figure 1, there are a set of hotels and for each hotel, we have its distance from the beach (x axis) and its price (y axis). The interesting hotels are all the points not worse than any other point in both distance from the beach and the price. Hotels 2, 4 and 6 are interesting and......

Words: 11922 - Pages: 48

Free Essay

#### Mountain View Community Hospital

...Case Study Mountain vew community hospital Case Study Mountain vew community hospital 2014 Case Study: Mountain View Community Hospital 1. Mountain View Community Hospital (MVCH) wants to provide better services than their current deliverables. Therefore, databases can help MVCH reach their goal through making relational applications provide information about clients or patients without having a book or paperwork to search for every time. A centralized database application that is not a conjunction of separate applications makes information fluid and accessible without much of a hassle. For example, when a surgeon at MVCH would want information of a patient who has visited before, the surgeon could run an application on a handheld device that collects information from the database. At the same time, when the doctor is checking the file information on the patient, the nurse or other staff member can also access the information of the patient to know what is wrong with the patient exactly. This was, the efficiency of doctors and other members of the hospital can work in collaboration flawlessly. If the database is managed well, when government inspections are taken, the hospital can provide the required information as soon as possible, keeping the hospital’s integrity to the mark with the government. 2. Database technology can take various forms when it comes to complying with security standards of patients and their information. Firstly, the database can......

Words: 850 - Pages: 4

Free Essay

#### Database Assigment

... Explain the differences between user views, a conceptual schema, and an internal schema as different perspectives of the same database. 5. In the three-schema architecture: a) The view of a manager or other type of user is called the schema. b) The view of the data architect or data administrator is called the schema. c) The view of the database administrator is called the schema. 6. Why might Pine Valley Furniture Company need a data warehouse? 7. As the ability to handle large amounts of data improves, describe three business areas where these very large databases are being used effectively. 8. In the section "Disadvantages of File Processing Systems," the statement is made that the disadvantages of file processing systems can also be limitations of databases, depending on how an organization manages its databases. First, why do organizations create multiple databases, not just one all-inclusive database supporting all data processing needs? Second, what organizational and personal factors are at work that might lead an organization to have...

Words: 408 - Pages: 2

Free Essay

#### Ibm Db2

...processors and supports up to 2GB of system memory. Insights gained from working with the database after installed are also shared. Installation Process for DB2 Express-C Downloading and installing DB2 Express-C is easily accomplished over an Internet connection. The version installed is 389MB and took approximately 10 minutes to download over a cable modem running at fractional T1 speeds. Installation screens from the steps completed to get DB2 Express-C up and running are shown in the Appendix of this document. After installing the Control Center was invoked at the command line using the command db2cc which is specifically defined in the chapter assigned on DB2 Express-C. Using the command db2sampl -xml –sql to create the sample data worked, and there is the secondary option of using graphical interface commands to accomplish the same. The use of the DB2 Command Line tools show how quickly a multidimensional table can be viewed, edited and batch programming tasks completed using shell scripts in this interface. IBM has done an excellent job of making this free version of DB2 as fully featured and full of navigational and command options as possible. What is most significant amount the design of DB2 relative to other databases worked with is the multiple approaches to getting commands invoked the flexibility on creating fully automated responses to queries, or the option of...

Words: 728 - Pages: 3

Free Essay

#### Parallel Querying of Rolap Cubes in the Presence of Hierarchies

...Analytical Processing is a powerful framework for the analysis of organizational data. OLAP is often supported by a logical structure known as a data cube, a multidimen- sional data model that offers an intuitive array-based per- spective of the underlying data. Supporting efficient index- ing facilities for multi-dimensional cube queries is an issue of some complexity. In practice, the difficulty of the in- dexing problem is exacerbated by the existence of attribute hierarchies that sub-divide attributes into aggregation layers of varying granularity. In this paper, we present a hierar- chy and caching framework that supports the efficient and transparent manipulation of attribute hierarchies within a parallel ROLAP environment. Experimental results verify that, when compared to the non-hierarchical case, very little overhead is required to handle streams of arbitrary hierar- chical queries. Categories and Subject Descriptors H.2.7.b [Database Management]: Data Warehouse and Repository; H.2.2.a [DatabaseManagement]: AccessMeth- ods General Terms Algorithms Design Performance Keywords Hierarchies, Caching, Data Cubes, Aggregation, Indexing, OLAP, Granularity, Materialization, Parallelization 1. INTRODUCTION Online Analytical Processing (OLAP) has become an im- portant component of contemporary Decision Support Sys- tems (DSS). Central to OLAP is the data cube, a multidi- mensional data model that presents an intuitive cube-like Permission to make......

Words: 760 - Pages: 4

Free Essay

#### Data Base Management

...1. Data dependence Data illustration incorporates with the requisition function. If there is alteration in the Data, then also there is a difference in the application function. Data independence Data depiction incorporates with operation function. If there is a transition in the Data, it won’t cause a shift in the application program. 2. Structured data It is established data which could efficiently be reclaimed and reserved in the databases as well as warehouses. It assign to the substantial case of the user's situation such as phenomenon and development. Unstructured data It consists of combined use of several media data like pictures, sounds, and video clips. Then, it is reserved as the element of the user's field situation 3. Data It is the illustration of articles and episode which are reserved and acknowledged in the system. It persists in a array of form such as numeric, symbols, 3RQ variables, and so on. For example, database in dr's clinic will have information such as patient name, address, diagnosis, symptoms, and phone number. Information These are the refined data which elevates the information of the specific using it. Data are worthless in their current prospective from so it is pre-refined and illustrated as the information to the user 4. Repository It is the rationalised reserved area for data meaning, table, data relationships and other parts of data system. It......

Words: 689 - Pages: 3

#### Benefits of Social Networking

...Chapter 6 Basic data structures A data structure, sometimes called data type, can be thought of as a category of data. Integer is a data category which can only contain integers. String is a data category holding only strings. A data structure not only deﬁnes what elements it may contain, it also supports a set of operations on these elements, such as addition or multiplication. Strings and numbers are the core data structures in Python. In this chapter, you’ll see a few more, almost as important, data structures. In the next chapter, you’ll se how you can design your own, customary data structures. The concept of a sequence is so fundamental to programming that I’ve had a very hard time avoiding it so far. And as you, alert and perky, have noticed, I actually haven’t, since I involuntarily had to introduce sequences in Section 4.4 when talking about the for loop. In Python, the word “sequence” covers several phenomena. Strings are sequences of characters, and you heard about those in Chapter 3. In the coming sections, you’ll hear about the two other basic types of sequence supported by Python: Lists and tuples. Later in this chapter, we’ll get around to talking about sets and dictionaries. Strings and integers represent concrete data objects; a string or a number represents true data in itself.1 Lists, tuples and dictionaries are designed to organize other data, to impose structure upon it; they do not necessarily represent true data in their own right. For this reason,......

Words: 18297 - Pages: 74

Free Essay

#### Gfs Using Soap

...implemented the Google File System, a scalable distributed ﬁle system for large distributed data-intensive applications. It provides fault tolerance while running on inexpensive commodity hardware, and it delivers high aggregate performance to a large number of clients. While sharing many of the same goals as previous distributed ﬁle systems, our design has been driven by observations of our application workloads and technological environment, both current and anticipated, that reﬂect a marked departure from some earlier ﬁle system assumptions. This has led us to reexamine traditional choices and explore radically diﬀerent design points. The ﬁle system has successfully met our storage needs. It is widely deployed within Google as the storage platform for the generation and processing of data used by our service as well as research and development eﬀorts that require large data sets. The largest cluster to date provides hundreds of terabytes of storage across thousands of disks on over a thousand machines, and it is concurrently accessed by hundreds of clients. In this paper, we present ﬁle system interface extensions designed to support distributed applications, discuss many aspects of our design, and report measurements from both micro-benchmarks and real world use. We have designed and implemented the Google File System (GFS) to meet the rapidly growing demands of Google’s data processing needs. GFS shares many of the same goals as previous distributed......

Words: 14789 - Pages: 60

#### Programming

Words: 349 - Pages: 2

#### Dfgdfg

Words: 344 - Pages: 2

Free Essay

#### Assigment

...CS301 – Data Structures ___________________________________________________________________ Data Structures 1 CS301 – Data Structures ___________________________________________________________________ Data Structures..........................................................................................................1 Lecture No. 01 ............................................................................................................3 Lecture No. 02 ..........................................................................................................12 Lecture No. 03 ..........................................................................................................21 Lecture No. 04 ..........................................................................................................34 Lecture No. 05 ..........................................................................................................49 Lecture No. 06 ..........................................................................................................59 Lecture No. 07 ..........................................................................................................66 Lecture No. 08 ..........................................................................................................73 Lecture No. 09 ..........................................................................................................84 Lecture No. 10 ....................................

Words: 13571 - Pages: 55

Free Essay

#### Ds Java

...A Practical Introduction to Data Structures and Algorithm Analysis Third Edition (Java) Clifford A. Shaffer Department of Computer Science Virginia Tech Blacksburg, VA 24061 April 16, 2009 Copyright c 2008 by Clifford A. Shaffer. This document is the draft of a book to be published by Prentice Hall and may not be duplicated without the express written consent of either the author or a representative of the publisher. Contents Preface xiii I Preliminaries 1 1 Data Structures and Algorithms 1.1 A Philosophy of Data Structures 1.1.1 The Need for Data Structures 1.1.2 Costs and Beneﬁts 1.2 Abstract Data Types and Data Structures 1.3 Design Patterns 1.3.1 Flyweight 1.3.2 Visitor 1.3.3 Composite 1.3.4 Strategy 1.4 Problems, Algorithms, and Programs 1.5 Further Reading 1.6 Exercises 3 4 4 6 8 12 13 14 15 16 17 19 21 2 Mathematical Preliminaries 2.1 Sets and Relations 2.2 Miscellaneous Notation 2.3 Logarithms 2.4 Summations and Recurrences 25 25 29 31 33 iii iv Contents 2.5 2.6 2.7 2.8 2.9 3 II 4 Recursion Mathematical Proof Techniques 2.6.1 Direct Proof 2.6.2 Proof by Contradiction 2.6.3 Proof by Mathematical Induction Estimating Further Reading Exercises Algorithm Analysis 3.1 Introduction 3.2 Best, Worst, and Average Cases 3.3 A Faster Computer, or a Faster Algorithm? 3.4 Asymptotic Analysis 3.4.1 Upper Bounds 3.4.2 Lower Bounds 3.4.3 Θ Notation 3.4.4......

Words: 30587 - Pages: 123

Free Essay