验证中...
开源中国 2018 年度最后一场技术盛会邀你来约~错过就要等明年啦!点此立即预约
语言: Java
分类: 编程语言基础
最后更新于 2018-12-09 10:09
gistfile1.txt
原始数据 复制代码
/*1、哈希冲突:当两个元素通过哈希算法运算后具有相同的位置,采用拉链法解决,当链表到达8个左右时,采用树形结构。
2、常用的数据结构:
1>栈。先进后出(杯子型),只允许一边操作,栈的底部元素为栈底,栈的顶部为栈顶。不允许中间插入元素。
2>队列。先进先出(水管型),只允许一端进行插入,一端进行删除,如果都可以进行插入和删除那么这个队列就是双端队列。双端队列即是栈也是队列。
3>排序二叉树。树的右子节点永远大于左子节点。*/
package com.company;
/**
* 数据结构的编写之队列
*/
public class Test1 {
public static void main(String[] args) {
//测试队列的程序
Queue queue = new Queue();
queue.add("m");
queue.remove();
System.out.println(queue.size());
//测试栈的程序
Stack stack = new Stack();
stack.add("m");
stack.remove();
System.out.println(stack.size());
}
}
class Queue{
//顺序存储
private Object [] data = new Object[10];
private int i;
//进队列方法
public void add(Object d){
if (i==data.length) {
throw new RuntimeException("已经满了,装不下了");
}else {
data[i] = d;
i++;
}
}
//出队列方法(出第一个)
public Object remove(){
Object obj = data[0];
data[0] = null;
if(data[0]==null){
for (int j = 1; j <i ; j++) {
data[j-1]=data[j];
}
i--;
}
return obj;
}
//大小方法
public int size(){
return i;
}
}
/**
* 数据结构的编写之栈
*/
class Stack{
private Object [] data = new Object[10];
private int i;
//进栈的方法
public void add(Object obj){
if (i == data.length) {
throw new RuntimeException("栈已经满了,进不去了!");
}else{
data[i] = obj;
i++;
}
}
//出栈的方法
public Object remove(){
Object obj = data[i];
data[i] = null;
i--;
return obj;
}
//当前栈的大小
public int size(){
return i;
}
}
/**
* 应用递归方法,实现数据结构链式结构的栈
*/
class Stacker{
public static void main(String[] args) {
Stacker stacker = new Stacker();
stacker.add("L");
stacker.add("O");
stacker.add("V");
stacker.add("E");
stacker.print();
}
Element first;
int size;
public void add(Object obj){
if (first == null) {
first = new Element(obj);
}else {
add(first,obj);
}
}
public void add(Element c,Object vlaue){
if (c.next == null) {
c.next = new Element(vlaue);
}else {
add(c.next,vlaue); //递归
}
}
public void print(){
print(first);
}
public void print(Element e){
if (e != null) {
System.out.println(e.data.toString());
print(e.next);
}
}
}
class Element{
Object data;
Element next;
public Element(Object data){
this.data = data;
}
}

评论列表( 0 )

你可以在登录后,发表评论

搜索帮助