Skip to content

Commit 443be54

Browse files
authored
Merge pull request onlyliuxin#8 from YouHmilyForProgramming/master
作业
2 parents 2b0c531 + 0fdf9c0 commit 443be54

File tree

8 files changed

+286
-0
lines changed

8 files changed

+286
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.hmily.learning;
2+
public class BinaryTreeNode {
3+
4+
private Object data;
5+
private BinaryTreeNode left;
6+
private BinaryTreeNode right;
7+
8+
public Object getData() {
9+
return data;
10+
}
11+
public void setData(Object data) {
12+
this.data = data;
13+
}
14+
public BinaryTreeNode getLeft() {
15+
return left;
16+
}
17+
public void setLeft(BinaryTreeNode left) {
18+
this.left = left;
19+
}
20+
public BinaryTreeNode getRight() {
21+
return right;
22+
}
23+
public void setRight(BinaryTreeNode right) {
24+
this.right = right;
25+
}
26+
27+
public BinaryTreeNode insert(Object o){
28+
return null;
29+
}
30+
31+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.hmily.learning;
2+
3+
public interface Iterator {
4+
public boolean hasNext();
5+
public Object next();
6+
7+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
package com.hmily.learning;
2+
/**
3+
* 不会写
4+
* @author zyzhmily
5+
*
6+
*/
7+
public class LinkedList implements List {
8+
9+
//链表头
10+
private Node head;
11+
//链表尾
12+
private Node tail;
13+
//链表大小
14+
private int size;
15+
16+
public void add(Object o){
17+
Node t = tail;
18+
Node node = new Node(o, null);
19+
tail = node;
20+
if (t == null) {
21+
head = node;
22+
} else {
23+
t.next = node;
24+
}
25+
size++;
26+
}
27+
public void add(int index , Object o){
28+
if(index<0||index>size()){
29+
throw new IndexOutOfBoundsException();
30+
}
31+
if (index == size) {
32+
add(o);
33+
} else {
34+
Node node = head;
35+
for (int i = 0; i < index-1; i++) {
36+
node = node.next;
37+
}
38+
Node newNode = new Node(o, node);
39+
node.next = newNode;
40+
newNode.next = node;
41+
size++;
42+
}
43+
}
44+
public Object get(int index){
45+
if(index<0||index>size()){
46+
throw new IndexOutOfBoundsException();
47+
}
48+
Node node=head;
49+
for(int i=0;i<index;i++){
50+
node=node.next;
51+
}
52+
return node.data;
53+
}
54+
public Object remove(int index){
55+
if(index<0||index>size()){
56+
throw new IndexOutOfBoundsException();
57+
}
58+
return null;
59+
}
60+
61+
public int size(){
62+
return this.size;
63+
}
64+
65+
public void addFirst(Object o){
66+
Node newNode = new Node(o,null);
67+
newNode.next=head.next;
68+
}
69+
public void addLast(Object o){
70+
add(o);
71+
}
72+
public Object removeFirst(){
73+
return null;
74+
}
75+
public Object removeLast(){
76+
return null;
77+
}
78+
public Iterator iterator(){
79+
return null;
80+
}
81+
82+
83+
private static class Node{
84+
Object data;
85+
Node next;
86+
public Node(Object data, Node next) {
87+
this.data = data;
88+
this.next = next;
89+
}
90+
}
91+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.hmily.learning;
2+
public interface List {
3+
public void add(Object o);
4+
public void add(int index, Object o);
5+
public Object get(int index);
6+
public Object remove(int index);
7+
public int size();
8+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
package com.hmily.learning;
2+
3+
public class MyArrayList implements List,Iterator{
4+
5+
private int size = 0;
6+
7+
private Object[] elementData = new Object[100];
8+
9+
/**
10+
* 添加元素
11+
*/
12+
public void add(Object o){
13+
if(size==elementData.length){
14+
Object[] newElementData = new Object[elementData.length+1];
15+
for(int i=0;i<elementData.length;i++){
16+
newElementData[i] = elementData[i];
17+
}
18+
newElementData[elementData.length+1]=o;
19+
elementData = newElementData;
20+
size++;
21+
}else{
22+
elementData[size+1]=o;
23+
size++;
24+
}
25+
}
26+
/**
27+
* 在指定位置添加元素
28+
*/
29+
public void add(int index, Object o){
30+
if(size()==elementData.length){
31+
Object[] newElementData = new Object[size()*2+1];
32+
for(int i=0;i<elementData.length;i++){
33+
newElementData[i] = elementData[i];
34+
}
35+
elementData = newElementData;
36+
}
37+
for(int i=size();i>index;i--){
38+
elementData[i]=elementData[i-1];
39+
}
40+
elementData[index]=o;
41+
size++;
42+
}
43+
/**
44+
* 获取元素
45+
*/
46+
public Object get(int index){
47+
if(index>=size()||index<0){
48+
throw new ArrayIndexOutOfBoundsException();
49+
}
50+
return elementData[index];
51+
}
52+
/**
53+
* 移除元素
54+
*/
55+
public Object remove(int index){
56+
if(index<0||index>size()){
57+
throw new ArrayIndexOutOfBoundsException();
58+
}
59+
Object o=elementData[index];
60+
for(int i=index;i<size();i++){
61+
elementData[i]=elementData[i+1];
62+
}
63+
return o;
64+
}
65+
66+
public int size(){
67+
return this.size;
68+
}
69+
/**
70+
* 数组下标
71+
*/
72+
private int bounds=0;
73+
74+
public Iterator iterator(){
75+
return this.iterator();
76+
}
77+
/**
78+
*
79+
*/
80+
@Override
81+
public boolean hasNext() {
82+
return bounds<size();
83+
}
84+
@Override
85+
public Object next() {
86+
if(!hasNext()){
87+
throw new ArrayIndexOutOfBoundsException();
88+
}
89+
return elementData[bounds++];
90+
}
91+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.hmily.learning;
2+
3+
public class MyQueue {
4+
private MyArrayList elementData = new MyArrayList();
5+
private int size;
6+
public void enQueue(Object o){
7+
elementData.add(o);
8+
size=elementData.size();
9+
}
10+
11+
public Object deQueue(){
12+
Object o=elementData.remove(0);
13+
return o;
14+
}
15+
16+
public boolean isEmpty(){
17+
return size()==0;
18+
}
19+
20+
public int size(){
21+
return size;
22+
}
23+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.hmily.learning;
2+
public class MyStack {
3+
private MyArrayList elementData = new MyArrayList();
4+
private int size;
5+
public void push(Object o){
6+
elementData.add(o);
7+
size=elementData.size();
8+
}
9+
10+
public Object pop(){
11+
Object o=elementData.remove(this.size()-1);
12+
size=elementData.size();
13+
return o;
14+
}
15+
16+
public Object peek(){
17+
Object o=elementData.get(size()-1);
18+
return o;
19+
}
20+
public boolean isEmpty(){
21+
return size()==0;
22+
}
23+
public int size(){
24+
return elementData.size();
25+
}
26+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.hmily.test;
2+
3+
public class MyTest {
4+
5+
public static void main(String[] args) {
6+
System.out.println("Hello World!!!");
7+
}
8+
9+
}

0 commit comments

Comments
 (0)