顺序存储结构代码java,顺序存储结构代码解释

java数据结构问题

//他是把二叉树存在一个连式结构的queue队列里面了

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的襄城网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

public boolean judge() {

QueueBiTNodeAnyType q = new LinkedListBiTNodeAnyType();//建立一个队列用来存贮二叉树

int cnt = 0;//某个计数器

m = 0;

BiTNodeAnyType p = rootNode;//根节点  rootNode怎么获取的你没有写出来

if (p != null)//如果根节点不为空就在队列中先插入根节点

q.add(p);//这样子整个树就进入queue了

while (!q.isEmpty()) {//队列不为空,也就是开始插入东西了。的时候

System.out.println(q.element().data);//不解释

BiTNodeAnyType node = q.remove();//弹出一个数据  这里面应该会持有他的左边和右边对应的指针。

a[m++] = node;//扔数组中

BiTNodeAnyType leftChild = node.leftChild;//获取当前节点的左子节点

if (leftChild != null)//如果不为空

q.add(leftChild);        //加入队列中

else

a[m++] = null;//否则,当前节点认为是空,放入数组中

BiTNodeAnyType rightChild = node.rightChild;//同理 右节点

if (rightChild != null)

q.add(rightChild);

else

a[m++] = null;//输出到这一步,数组中保存了根节点,以及第一层的状态

//中左右这种中序遍历,此时如果q下面还有东西,就继续。

//a[m]中保存的应该就是中序遍历下来的所有节点。

}

for (int i = 0; i  m; i++) {//遍历a[m]

if (a[i] != null) {

if (a[i].leftChild == null  a[i].rightChild != null) {//这里只判断左子树为空但是右边不为空的情况,

//貌似不会出现相反的情况? 就这样咯。。

return false;

} else {

cnt++;

}

}

}

System.out.println(cnt + " " + m);

if (cnt == this.countNode(rootNode)) {

return true;

}

return true;

}

如何用JAVA语言建立含有若干个元素的顺序表,并实现插入,删除,查找等基本操作

java 中的List接口就是顺序存储的集合机构,底层是用数组实现的,检索性能高,插入和删除性能较低,因为涉及到移位。代码简单演示:

ListInteger list = new ArrayListInteger(); // 定义一个用于存放整数的集合list,

list.add(100);

list.add(200);

list.add(300); // 将100,200,300 一次加入到list中

System.out.println(list.toString()); // 查看结果

int a = list.get(0) ; // 这将找出list中的第一个元素100,赋值给a

System.out.println(a); // 100

list.remove(2); // 删除list中的第三个元素

System.out.println(list.toString()); // 查看结果

------------------------------------------------------------------------------------------------------

比较粗略,详细内容请查看ArrayList 的 API 。祝你学习进步。

设计一个有序顺序表 数据结构(java)

package array;

class OrderArray{

private long[] a;

private int nElems;

public OrderArray(int maxSize){

a = new long[maxSize];

nElems = 0;

}

public void insert(long value){

int pos = 0;

for(pos=0;posnElems;pos++){

if(a[pos]value){

break;

}

}

for(int i=nElems;ipos;i--){

a[i] = a[i-1];

}

a[pos] = value;

nElems++;

}

public boolean delete(long value){

int pos = find(value);

if(pos!=-1){

for(int i=pos;inElems;i++){

a[i] = a[i+1];

}

nElems --;

return true;

}

return false;

}

public int find(long keySearch){

int lowerBound = 0;

int upperBound = nElems-1;

int curIn = 0;

while(true){

curIn = (lowerBound+upperBound)/2;

if(a[curIn]==keySearch){

return curIn;

}else if(lowerBoundupperBound){

return -1;

}else{

if(a[curIn]keySearch){

upperBound = curIn -1;

}else{

lowerBound = curIn +1;

}

}

}

}

public void display(){

for(int i=0;inElems;i++){

System.out.println(a[i]);

}

}

}

public class OrderArrayApp {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int maxSize = 100;

OrderArray orderArray = new OrderArray(maxSize);

orderArray.insert(1);

orderArray.insert(7);

orderArray.insert(9);

orderArray.insert(8);

orderArray.insert(6);

orderArray.insert(4);

orderArray.display();

orderArray.delete(8);

orderArray.display();

}

}


网站题目:顺序存储结构代码java,顺序存储结构代码解释
转载注明:http://hbruida.cn/article/hdsegj.html