java数据结构

数组:数组是相同类型类型变量的集合,数组可以被定义成为任何类型,特别要素:通过下标来访问它。
        java严格地坚持以保证你不会意外地去存储或引用在数组范围以外的值。java的运行系统会检查以确保所有的数组下标都在正确的范围之    内(java与C/C++从根本上不同,C/C++不提供运行边界检查)

插入排序:
   //首先选择第一个无序的数据N,把它的值用temp标记,然后和N-1,做比较。一次以后,N前面的数据就完成了排序。
    public class InsertionSort {
public static  void insert(int a[]){
int in, out;
for(out= 1;out<a.length;out++){
int temp = a[out];
in = out;
while(in>0&&a[in-1]>temp){
a[in] = a[in-1];
--in;
}
a[in] = temp;
}
for(int i = 0;i<a.length;i++){
System.out.println(a[i]);
}
}

栈:是限制仅在表的一端进行插入和删除运算的线性表。
    通常称插入和删除这一端为栈顶,而另一端称为栈底,没有元素称为空栈
栈为后进先出的线性表 (LIFO表 last in frist out)。

       

队列:是只允许在一端进行插入,在另一端进行删除的运算受限的线性表。
  允许删除的一端称之为队头 ,允许插入的称为队尾,没有元素的称为空队列
队列称为先进先出的线性表(FIFO).
       
单链表:用一组地址任意的存储单元存放线性表中的数据元素。

    
双端链表:最后一个链接点的引用,就像对第一链接点的引用一样。

哈希表: 记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。这个对应关系f为哈希函数,按这个思想建立的表称为为哈希表。

递归:是函数调用自身的一种特殊的编程技术。

递归二分查找
  1. public static int binarySearch(int[] dataset,int data,int beginIndex,int endIndex){    
  2.        int midIndex = (beginIndex+endIndex)/2;    
  3.        if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){  
  4.            return -1;    
  5.        }  
  6.        if(data <dataset[midIndex]){    
  7.            return binarySearch(dataset,data,beginIndex,midIndex-1);    
  8.        }else if(data>dataset[midIndex]){    
  9.            return binarySearch(dataset,data,midIndex+1,endIndex);    
  10.        }else {    
  11.            return midIndex;    
  12.        }    
  13.    }   
  14.   

二叉树:二叉树是一种树形结构,它的特点是每个结点至多只有两棵树
存储结构:顺序存储结构和链式存储结构

前序遍历:先访问根结点,然后再前序遍历左结点,然后再前序遍历右结点。
中序遍历:先中序遍历左结点,然后再访问根结点,最后中序遍历右结点。
后序遍历:先中序遍历左结点,然后再中序遍历右结点,最后访问根结点。

红—黑树:自平衡二叉 查找








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值