Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions group09/277123057/Week01/ArrayList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package Week01;
/*
* time:2017-2-20 21:51 created
*
*/
public class ArrayList implements List{

private int size = 0;
//���ٵĿռ�ֻ��100��
private Object[] elementData = new Object[100];

//��ĩλ����
public void add(Object o){
elementData[size++] = o;
}

//��ǰλ����Ԫ�أ��������ƶ���ǰλ�ڸ�λ�õ�Ԫ�ؼ����к���Ԫ��
public void add(int index, Object o){
System.arraycopy(elementData, index, elementData, index+1, size-index);
elementData[index] = o;
size++;
}

public Object get(int index){
return elementData[index];
}
//�Ƴ���������ָ����Ԫ��,�ұ�Ԫ������
public Object remove(int index){
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index, numMoved);
elementData[--size] = null;
return elementData[index];
}

public int size(){
return size;
}

public Iterator iterator(){
return new ArrayListIterator();
}

private class ArrayListIterator implements Iterator{
private int pos = 0;

public boolean hashNext() {
return pos < size();
}

public Object next() {
return elementData[pos++];
}
}
}
26 changes: 26 additions & 0 deletions group09/277123057/Week01/BinaryTreeNode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package Week01;
//
/*
*��û����
* */
public class BinaryTreeNode {
private Object data;
private BinaryTreeNode left;
private BinaryTreeNode right;

public Object getData(){
return data;
}

public void setData(Object data){
this.data = data;
}

public BinaryTreeNode getLeft() {
return left;
}

public void setLeft(BinaryTreeNode left){
this.left = left;
}
}
6 changes: 6 additions & 0 deletions group09/277123057/Week01/Iterator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package Week01;
//time
public interface Iterator {
public boolean hashNext();
public Object next();
}
173 changes: 173 additions & 0 deletions group09/277123057/Week01/LinkedList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
package Week01;

import java.util.NoSuchElementException;

/*
* time:2017-2-22 13:00
* ���http://blog.csdn.net/jianyuerensheng/article/details/51204598
* http://www.jianshu.com/p/681802a00cdf
* jdk1.8Դ��
* */

//������õ���˫��������jdk1.6��linkedList����˫��ѭ������ʵ��
public class LinkedList implements List {

private int size = 0;
private Node first; //ָ��ͷ���
private Node last; //ָ��β�ڵ�

//��������end����Ԫ�أ������Լ���addLast()����
public void add(Object o){
addLast(o);
}

//����index����,��δ���ο�ͬ��ͬѧ spike
public void add(int index, Object o){
if (index < 0 || index > size)
throw new IllegalArgumentException();
size++;
if (index == size){
addLast(o);
}else{
Node target = findIndex(index);
Node newNode = new Node(o, target,target.next);
if (last == target){
last = newNode;
}else{
//target.next = newNode;����Ҫ��Ҫ��
target.next.prev = newNode;//�����
}
}
size++;
}

public Object get(int index){
if ( index < 0 || index > size){
throw new IllegalArgumentException();
}
return findIndex(index).data;
}
//ɾ��indexָ����Ԫ��
public Object remove(int index){
if (index < 0 || index > size){
throw new IllegalArgumentException();
}

Node target = findIndex(index);
if (target == first){
first = first.next;
first.prev = null;
}else if(target == last){
last = last.prev;
last.next = null;
}else{
target.prev.next = target.next;
target.next.prev = target.prev;
}
return target.data;
}

public int size(){
return size;
}

public void addFirst(Object o){

Node f = first;
Node newNode = new Node(o,null,f);
first = newNode;
if (f == null)
last = newNode; //���fΪnull��˵��ֻ��last����ָ��
else
f.prev = newNode;
size++;
}

public void addLast(Object o){
Node l = last;
Node newNode = new Node(o, l, null);
last = newNode;
if (l == null)
first = newNode;
else
l.next = newNode;
size++;
}


public Object removeFirst() {
if ( first == null)
throw new NoSuchElementException();
Node f = first;
Object data = f.data;
Node next = f.next;
//ȥ����Ԫ��ָΪnull
f.data = null;
f.next = null;
first = next;
if (next == null)
last = null;
else
next.prev = null;
size--;
return data;
}

public Object removeLast(){
if (last == null)
throw new NoSuchElementException();
Node l = last;
Object data = l.data;
Node previous = l.prev;
l.data = null;
l.prev = null;
last = previous;
if (previous == null)
first = null;
else
previous.next = null;
size--;
return data;
}

public Iterator iterator(){
return new LinkedListIterator();
}

private class LinkedListIterator implements Iterator {
Node curNode = first;
public boolean hashNext() {
return curNode != null;
}
public Object next() {
if (!hashNext())
throw new NoSuchElementException();
Object data = curNode.data;
curNode = curNode.next;
return data;
}
}
private Node findIndex(int index) {
Node target = first;
int i = 0;
while(i < index){
target = target.next;
i++;
}
return target;
}

//������
private static class Node{
private Object data;
//Ĭ��Ҳ��null
private Node prev = null; //��һ��Ԫ�ؽڵ�
private Node next = null;//��һ��Ԫ�ؽڵ�

public Node(Object data, Node pre, Node next){
this.data = data;
this.prev = pre;
this.next = next;
}
}
}
9 changes: 9 additions & 0 deletions group09/277123057/Week01/List.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package Week01;
//time:
public interface List {
public void add(Object o);
public void add(int index, Object o);
public Object get(int index);
public Object remove(int index);
public int size();
}
29 changes: 29 additions & 0 deletions group09/277123057/Week01/Queue.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package Week01;
/*
* time:2017-2-25 13:46 created by Doen
*
* */
public class Queue {
private LinkedList elementData = new LinkedList();
//������

public void enQueue(Object o){
elementData.add(o);
}

//������
public Object deQueue(){
if (isEmpty())
throw new UnsupportedOperationException();
return elementData.remove(0);
}

public boolean isEmpty(){
return elementData.size() == 0;
}

public int size(){
return elementData.size();
}

}
30 changes: 30 additions & 0 deletions group09/277123057/Week01/Stack.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package Week01;

import java.util.NoSuchElementException;

/*
* time:2017-2-25 13:19 created by Doen
* change
* */
public class Stack {

private ArrayList elementData = new ArrayList();

public void push(Object o){
elementData.add(o);
}

public Object pop(){
if (isEmpty())
throw new NoSuchElementException();
return elementData.remove(elementData.size()-1);
}

public boolean isEmpty(){
return elementData.size() == 0;
}

public int size(){
return elementData.size();
}
}
9 changes: 9 additions & 0 deletions group09/277123057/Week01/Test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package Week01;
//time
public class Test {
public static void main(String[] args){
ArrayList arraylist = new ArrayList();
arraylist.add(1);
arraylist.add("A");
}
}