今儿学了数据结构, 我的感觉吧 ,数据结构就是一特殊的 存储数据的方式,数据之间以某种关系结合起来 , 达到一种别的方法所达不到的效果。高中的时候我就学了数组 , 没想到它也是个数据结构 ,= =。今天碰巧学校老师也讲了数组,C++的跟java的也差不多。
常用的数据结构吧 ,我百度了一下 ,有以下一堆:
数组 (Array),栈 (Stack),队列 (Queue),链表 (Linked List),树 (Tree),
图 (map),堆 (Heap),散列表 (Hash)。
今天主要学习的是数组和队列 ,队列也就是利用了一个新的数组给原来数组上面增加减少删减一些数据,来实现一个无限容量的数组(如果内存够用的话)= =。
对于今天刚接触这个东西来说 ,感觉还不错,需要多加观察与练习。达到熟练掌握了~以后还有更多的数据结构等着我,= =。 听说数据结构这东西还挺麻烦的......
然后附上今天做的一个大概,~
package array1;
public class QueueImp implements QueueInterface{
//首先定义一个长度为0的初始数组
String[] src = new String[0];
public void add(String s) {
//定义一个新的数组,长度是原始数组长度+1
String[] dest = new String[src.length+1];
//将要放入的元素放到新数组的最后一个下标位置
dest[src.length] = s;
//将原始数组中的数据按照下标顺序拷贝到新数组中
for(int i=0;i<src.length;i++){
dest[i] = src[i];
}
src = dest;
}
public String get(int index) {
//取得数组中对应下标的元素
String str = src[index];
return str;
}
public int size() {
return src.length;
}
public void insert(String s, int index) {
//定义一个新的数组,长度是原始数组长度+1
String[] dest = new String[src.length+1];
//将要放入的元素放到新数组的插入位置
dest[index] = s;
//将原始数组中的其余数据按照下标顺序拷贝到新数组中
for(int i=0;i<index;i++){
dest[i] = src[i];
}
for(int i=index+1;i<src.length+1;i++){
dest[i] = src[i-1];
}
src = dest;
}
public void modify(int index, String s) {
//定义一个新的数组,长度是原始数组长度
String[] dest = new String[src.length];
//将要修改的元素放到新数组的修改位置
dest[index] = s;
//将原始数组中的其余数据按照下标顺序拷贝到新数组中
for(int i=0;i<index;i++){
dest[i] = src[i];
}
for(int i=index+1;i<src.length;i++){
dest[i] = src[i];
}
src = dest;
}
public void remove(int index) {
//定义一个新的数组,长度是原始数组长度-1
String[] dest = new String[src.length-1];
//将原始数组中的其余数据按照下标顺序拷贝到新数组中
for(int i=0;i<index;i++){
dest[i] = src[i];
}
for(int i=index+1;i<src.length;i++){
dest[i-1] = src[i];
}
src = dest;
}
}
常用的数据结构吧 ,我百度了一下 ,有以下一堆:
数组 (Array),栈 (Stack),队列 (Queue),链表 (Linked List),树 (Tree),
图 (map),堆 (Heap),散列表 (Hash)。
今天主要学习的是数组和队列 ,队列也就是利用了一个新的数组给原来数组上面增加减少删减一些数据,来实现一个无限容量的数组(如果内存够用的话)= =。
对于今天刚接触这个东西来说 ,感觉还不错,需要多加观察与练习。达到熟练掌握了~以后还有更多的数据结构等着我,= =。 听说数据结构这东西还挺麻烦的......
然后附上今天做的一个大概,~
package array1;
public class QueueImp implements QueueInterface{
//首先定义一个长度为0的初始数组
String[] src = new String[0];
public void add(String s) {
//定义一个新的数组,长度是原始数组长度+1
String[] dest = new String[src.length+1];
//将要放入的元素放到新数组的最后一个下标位置
dest[src.length] = s;
//将原始数组中的数据按照下标顺序拷贝到新数组中
for(int i=0;i<src.length;i++){
dest[i] = src[i];
}
src = dest;
}
public String get(int index) {
//取得数组中对应下标的元素
String str = src[index];
return str;
}
public int size() {
return src.length;
}
public void insert(String s, int index) {
//定义一个新的数组,长度是原始数组长度+1
String[] dest = new String[src.length+1];
//将要放入的元素放到新数组的插入位置
dest[index] = s;
//将原始数组中的其余数据按照下标顺序拷贝到新数组中
for(int i=0;i<index;i++){
dest[i] = src[i];
}
for(int i=index+1;i<src.length+1;i++){
dest[i] = src[i-1];
}
src = dest;
}
public void modify(int index, String s) {
//定义一个新的数组,长度是原始数组长度
String[] dest = new String[src.length];
//将要修改的元素放到新数组的修改位置
dest[index] = s;
//将原始数组中的其余数据按照下标顺序拷贝到新数组中
for(int i=0;i<index;i++){
dest[i] = src[i];
}
for(int i=index+1;i<src.length;i++){
dest[i] = src[i];
}
src = dest;
}
public void remove(int index) {
//定义一个新的数组,长度是原始数组长度-1
String[] dest = new String[src.length-1];
//将原始数组中的其余数据按照下标顺序拷贝到新数组中
for(int i=0;i<index;i++){
dest[i] = src[i];
}
for(int i=index+1;i<src.length;i++){
dest[i-1] = src[i];
}
src = dest;
}
}