扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
做了很多年的程序员,觉得什么树的设计并不是非常实用。二叉树有顺序存储,当一个insert大量同时顺序自增插入的时候,树就会失去平衡。树的一方为了不让塌陷,会增大树的高度。性能会非常不好。以上是题外话。分析需求在写代码哪带枣。
创新互联2013年至今,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元梁山做网站,已为上家服务,为梁山各地企业和个人服务,联系电话:028-86922220
import java.util.List;
import java.util.LinkedList;
public class Bintrees {
private int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9};
private static ListNode nodeList = null;
private static class Node {
Node leftChild;
Node rightChild;
int data;
Node(int newData) {
leftChild = null;
rightChild = null;
data = newData;
}
}
// 创建二叉树
public void createBintree() {
nodeList = new LinkedListNode();
// 将数组的值转换为node
for (int nodeIndex = 0; nodeIndex array.length; nodeIndex++) {
nodeList.add(new Node(array[nodeIndex]));
}
// 对除最后一个父节点按照父节点和孩子节行念点的数字关系建立二叉树
for (int parentIndex = 0; parentIndex array.length / 2 - 1; parentIndex++) {
nodeList.get(parentIndex).leftChild = nodeList.get(parentIndex * 2 + 1);
nodeList.get(parentIndex).rightChild = nodeList.get(parentIndex * 2 + 2);
}
// 最后一个父节点
int lastParentIndex = array.length / 2 - 1;
// 左孩子
nodeList.get(lastParentIndex).leftChild = nodeList.get(lastParentIndex * 2 + 1);
// 如果为奇数,李拆建立右孩子
if (array.length % 2 == 1) {
nodeList.get(lastParentIndex).rightChild = nodeList.get(lastParentIndex * 2 + 2);
}
}
// 前序遍历
public static void preOrderTraverse(Node node) {
if (node == null) {
return;
}
System.out.print(node.data + " ");
preOrderTraverse(node.leftChild);
preOrderTraverse(node.rightChild);
}
// 中序遍历
public static void inOrderTraverse(Node node) {
if (node == null) {
return;
}
inOrderTraverse(node.leftChild);
System.out.print(node.data + " ");
inOrderTraverse(node.rightChild);
}
// 后序遍历
public static void postOrderTraverse(Node node) {
if (node == null) {
return;
}
postOrderTraverse(node.leftChild);
postOrderTraverse(node.rightChild);
System.out.print(node.data + " ");
}
public static void main(String[] args) {
Bintrees binTree = new Bintrees();
binTree.createBintree();
Node root = nodeList.get(0);
System.out.println("前序遍历:");
preOrderTraverse(root);
System.out.println();
System.out.println("中序遍历:");
inOrderTraverse(root);
System.out.println();
System.out.println("后序遍历:");
postOrderTraverse(root);
}
}
import java.util.ArrayList;
import java.util.List;
public class Test
{
/**
* @param args
*/
public static void main(String[] args)
{
// 创建一个顺序表
ListString a = new ArrayListString();
a.add("a");
a.add("b");
a.add("c");
a.add("x");
a.add("d"袭嫌信);
a.add("x");
// 按顺序拍轮输出创建的顺序者御表
for (int i = 0; i a.size(); i++)
{
System.out.println("序号:" + i + ", 值:" + a.get(i));
}
// 循环替换x为y
for (int i = 0; i a.size(); i++)
{
String value = a.get(i);
if ("x".equals(value))
{
a.set(i, "y");
}
}
// 按顺序输出替换后的顺序表
for (int i = 0; i a.size(); i++)
{
System.out.println("序号:" + i + ", 值:" + a.get(i));
}
}
}
ArrayListInteger la = new ArrayListInteger();
ArrayListInteger lb = new ArrayListInteger();
//ArrayList 就是脊神线性表.....如果问你具体怎么定义直接超ArrayList的源代樱启亏码旁唯给他
la.add(3);
la.add(5);
la.add(8);
la.add(11);
lb.add(2);
lb.add(6);
lb.add(8);
lb.add(9);
lb.add(11);
lb.add(15);
lb.add(20);
SetInteger set = new HashSetInteger();
set.addAll(la);
set.addAll(lb);
for (Integer integer : set) {
System.out.print(integer+" ");
}
System.out.println("");
la.addAll(lb);
Collections.sort(la);
for (Integer integer : la) {
System.out.print(integer+" ");
顺行陆游序表,这里有说明,题目悉源都一样,望采纳档销网页链接
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流