Skip to content

Commit 450dc0f

Browse files
committed
1
1 parent 62657a1 commit 450dc0f

File tree

6 files changed

+432
-417
lines changed

6 files changed

+432
-417
lines changed
Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
1-
package basic;
2-
3-
public class BinaryTree {
4-
private BinaryTreeNode root;//¸ů˝Úľă
5-
6-
//˛ĺČë˛Ů×÷
7-
public void insert(int value){
8-
BinaryTreeNode newNode = new BinaryTreeNode(value);
9-
if(root==null){
10-
root = newNode;
11-
root.setLeft(null);
12-
root.setRight(null);
13-
}else{
14-
BinaryTreeNode currentNode = root;
15-
BinaryTreeNode parentNode;
16-
while(true)
17-
{
18-
parentNode = currentNode;
19-
//ÍůÓҡĹ
20-
if(newNode.getData()>currentNode.getData()){
21-
currentNode = currentNode.getRight();
22-
if(currentNode ==null){
23-
parentNode.setRight(newNode);
24-
return;
25-
}
26-
}else if(newNode.getData()<=currentNode.getData()){
27-
currentNode = currentNode.getLeft();
28-
if(currentNode ==null){
29-
parentNode.setLeft(newNode);
30-
return;
31-
}
32-
}
33-
34-
}
35-
36-
}
37-
38-
39-
}
40-
41-
}
1+
package basic;
2+
3+
public class BinaryTree {
4+
private BinaryTreeNode root;//根节点
5+
6+
//插入操作
7+
public void insert(int value){
8+
BinaryTreeNode newNode = new BinaryTreeNode(value);
9+
if(root==null){
10+
root = newNode;
11+
root.setLeft(null);
12+
root.setRight(null);
13+
}else{
14+
BinaryTreeNode currentNode = root;
15+
BinaryTreeNode parentNode;
16+
while(true)
17+
{
18+
parentNode = currentNode;
19+
//往右放
20+
if(newNode.getData()>currentNode.getData()){
21+
currentNode = currentNode.getRight();
22+
if(currentNode ==null){
23+
parentNode.setRight(newNode);
24+
return;
25+
}
26+
}else if(newNode.getData()<=currentNode.getData()){
27+
currentNode = currentNode.getLeft();
28+
if(currentNode ==null){
29+
parentNode.setLeft(newNode);
30+
return;
31+
}
32+
}
33+
34+
}
35+
36+
}
37+
38+
39+
}
40+
41+
}
Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
1-
package basic;
2-
3-
//二叉树
4-
public class BinaryTreeNode {
5-
private int data;// 节点值
6-
private BinaryTreeNode left; //左子节点
7-
private BinaryTreeNode right;//右子节点
8-
public BinaryTreeNode(int data){
9-
this.data =data;
10-
this.left = null;
11-
this.right = null;
12-
}
13-
public void setDate(int data){
14-
this.data =data;
15-
}
16-
public int getData(){
17-
return data;
18-
}
19-
public BinaryTreeNode getLeft(){
20-
return left;
21-
}
22-
public BinaryTreeNode getRight(){
23-
return right;
24-
}
25-
public void setLeft(BinaryTreeNode left){
26-
this.left = left;
27-
}
28-
public void setRight(BinaryTreeNode right){
29-
this.right =right;
30-
}
31-
32-
33-
34-
}
1+
package basic;
2+
3+
//������
4+
public class BinaryTreeNode {
5+
private int data;//节点值
6+
private BinaryTreeNode left; //左子节点
7+
private BinaryTreeNode right;//右子节点
8+
public BinaryTreeNode(int data){
9+
this.data =data;
10+
this.left = null;
11+
this.right = null;
12+
}
13+
public void setDate(int data){
14+
this.data =data;
15+
}
16+
public int getData(){
17+
return data;
18+
}
19+
public BinaryTreeNode getLeft(){
20+
return left;
21+
}
22+
public BinaryTreeNode getRight(){
23+
return right;
24+
}
25+
public void setLeft(BinaryTreeNode left){
26+
this.left = left;
27+
}
28+
public void setRight(BinaryTreeNode right){
29+
this.right =right;
30+
}
31+
32+
33+
34+
}
Lines changed: 88 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,88 @@
1-
package basic;
2-
/**
3-
* arraylist,Linkedlist,栈,队列,二叉树,迭代器实现,一篇文章关于计算机组成原理 描述CPU,内存, 硬盘,指令之间的关系
4-
*
5-
* @author lvxg
6-
*
7-
*/
8-
public class MyArrayList {
9-
private Object[] element;
10-
private int size;
11-
private static final Object[] EMPTY = new Object[10];
12-
13-
public MyArrayList() {
14-
this.element = EMPTY;
15-
}
16-
17-
public boolean add(Object o) {
18-
// 如果数组没满
19-
if (size < element.length) {
20-
element[size] = o;
21-
size++;
22-
} else {
23-
// 数组扩容
24-
grow();
25-
element[size] = o;
26-
size++;
27-
}
28-
return true;
29-
}
30-
31-
// 根据索引添加数据
32-
public boolean add(int index, Object o) {
33-
rangeCheckForAdd(index);
34-
if (size < element.length + 1) {
35-
Object[] e = new Object[element.length+1];
36-
System.arraycopy(element, 0, e, 0, index);
37-
e[index] = o;
38-
System.arraycopy(element, index, e, index + 1, element.length-index);
39-
size++;
40-
}
41-
return true;
42-
}
43-
44-
public Object get(int index) {
45-
rangeCheck(index);
46-
return element[index];
47-
}
48-
49-
public Object remove(int index) {
50-
rangeCheck(index);
51-
Object oldValue = element[index];
52-
int numMoved = size - index-1;
53-
if(numMoved>0){
54-
System.arraycopy(element, index+1, element, index, numMoved);
55-
}
56-
element[--size] =null;
57-
return oldValue;
58-
}
59-
public int size() {
60-
return size;
61-
}
62-
private void rangeCheck(int index) {
63-
if (index >= size)
64-
throw new IndexOutOfBoundsException();
65-
}
66-
private void rangeCheckForAdd(int index) {
67-
if (index > size || index < 0) {
68-
throw new IndexOutOfBoundsException();
69-
}
70-
}
71-
72-
// 数组扩容方法
73-
private void grow() {
74-
Object[] e = new Object[size * 2];
75-
// 数组拷贝
76-
System.arraycopy(element, 0, e, 0, element.length);
77-
element = e;
78-
79-
}
80-
81-
public static void main(String[] args) {
82-
MyArrayList m = new MyArrayList();
83-
m.add("1");
84-
for (int i = 0; i < 10; i++) {
85-
m.add(i);
86-
}
87-
m.add(2, "123");
88-
m.remove(1);
89-
}
90-
91-
}
1+
package basic;
2+
/**
3+
*
4+
*
5+
* @author lvxg
6+
*
7+
*/
8+
public class MyArrayList {
9+
private Object[] element;
10+
private int size;
11+
private static final Object[] EMPTY = new Object[10];
12+
13+
public MyArrayList() {
14+
this.element = EMPTY;
15+
}
16+
17+
public boolean add(Object o) {
18+
if (size < element.length) {
19+
element[size] = o;
20+
size++;
21+
} else {
22+
//数组扩容
23+
grow();
24+
element[size] = o;
25+
size++;
26+
}
27+
return true;
28+
}
29+
30+
//根据索引添加
31+
public boolean add(int index, Object o) {
32+
rangeCheckForAdd(index);
33+
if (size < element.length + 1) {
34+
Object[] e = new Object[element.length+1];
35+
System.arraycopy(element, 0, e, 0, index);
36+
e[index] = o;
37+
System.arraycopy(element, index, e, index + 1, element.length-index);
38+
element = e;
39+
size++;
40+
}
41+
return true;
42+
}
43+
44+
public Object get(int index) {
45+
rangeCheck(index);
46+
return element[index];
47+
}
48+
49+
public Object remove(int index) {
50+
rangeCheck(index);
51+
Object oldValue = element[index];
52+
int numMoved = size - index-1;
53+
if(numMoved>0){
54+
System.arraycopy(element, index+1, element, index, numMoved);
55+
}
56+
element[--size] =null;
57+
return oldValue;
58+
}
59+
public int size() {
60+
return size;
61+
}
62+
private void rangeCheck(int index) {
63+
if (index >= size)
64+
throw new IndexOutOfBoundsException();
65+
}
66+
private void rangeCheckForAdd(int index) {
67+
if (index > size || index < 0) {
68+
throw new IndexOutOfBoundsException();
69+
}
70+
}
71+
72+
//数组扩容方法
73+
private void grow() {
74+
Object[] e = new Object[size * 2];
75+
System.arraycopy(element, 0, e, 0, element.length);
76+
element = e;
77+
78+
}
79+
80+
public static void main(String[] args) {
81+
MyArrayList m = new MyArrayList();
82+
for (int i = 0; i < 10; i++) {
83+
m.add(i);
84+
}
85+
m.add(2, "123");
86+
}
87+
88+
}

0 commit comments

Comments
 (0)