Java代写,java作业代写:100%原创代码
当前位置:以往案例 > >案例CS之java avl tree 平衡二叉树案例加急案例
2018-06-10



Implement an AVL tree stored in a random access file

Each node contains an integer key, one or more fixed length character strings, a left child reference, a right child reference and a height

The format of the file is shown on the next slide

The methods you must implement are shown on the following slides.

Duplicate keys cannot be entered in the tree

Your implementation MUST NOT load the whole tree in memory. Each operation only makes copies of the nodes it needs for that operation. Modified nodes must be written back to the file.

You must create own test driver. I will create my own test driver.


Root Free

numOtherFields

Length1

Length2

AddrContents


0

508

8

908

16

2

20

8

24

20

28

668

108

40

Alonzo

Church

828

588

2

188

200

Alan

Turing

0

0

0

268

1068

348

90

Ada

Byron

0

0

0

428

28

508

80

Hannah

Arendt

108

748

3

588

60

Kurt

Godel

988

0

1

668

0

748

100

George

Eliot

348

188

1

828

10

Anton

Chekhov

0

0

0

908

268

988

50

Vladimir

Nabokov.

0

0

0

1068

428


KeyField1Field2LeftRightHeight

java代写

import java.io.*; import java.util.*;

public class AVLTree {

/*

Implements a ALV tree of ints (the keys) and fixed length character strings fields stored in a random access file.

Duplicates keys are not allowed. There will be at least 1 character string field

*/

private RandomAccessFile f;

private long root; //the address of the root node in the file

private long free; //the address in the file of the first node in the free list private int numFields; //the number of fixed length character fields

private int fieldLengths[]; //the length of each field


private class Node { private int key;

private char fields[][]; private long left; private long right; private int height;

private Node(long l, int d, long r, char fields[][]) {

//constructor for a new node

}

private Node(long addr) throws IOException{

//constructor for a node that exists and is stored in the file

}

private void writeNode(long addr) throws IOException {

//writes the node to the file at location addr

}

}


public AVLTree(String fname, int fieldLengths[]) throws IOException {

//creates a new empty AVL tree stored in the file fname

//the number of character string fields is fieldLengths.length

//fieldLengths contains the length of each field

}

public AVLTree(String fname) throws IOException {

//reuse an existing tree store in the file fname

}


public void insert(int k, char fields[][]) throws IOException {

//PRE: the number and lengths of the fields matches the expected number and lengths

//insert k and the fields into the tree

//if k is in the tree do nothing

}

public void print() throws IOException {

//Print the contents of the nodes in the tree is ascending order of the key

}


public LinkedList find(int k) throws IOException {

//if k is in the tree return a linked list of the fields associated with k

//otherwise return null

//The strings in ths list must NOT include the padding (i.e the null chars) return null;

}

public void remove(int k) throws IOException {

//if k is in the tree removed the node with key k from the tree

//otherwise do nothing

}

public void close() throws IOException {

//update root and free in the file (if necessary)

//close the random access file

}

}


You will demonstrate your program to me either on your own machine or on a machine in the CS lab.

I will give you a test driver for the demo but you should develop your own driver to do initial testing.

After your demo email me your source code (AVLTree.java).


在线提交订单