程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件。——《疯狂的程序员》
数据结构想必大家都不会陌生,对于一个成熟的程序员而言,熟悉和掌握数据结构和算法也是基本功之一。数据结构本身其实不过是数据按照特点关系进行存储或者组织的集合,特殊的结构在不同的应用场景中往往会带来不一样的处理效率。
数据结构与算法Java实现版
本项目用Java实现了常见的数据结构与算法,项目结构使用某一数据结构为接口,分别用来连续存储和链式存储进行实现.并包含完整的注释信息.方便阅读与学习.
线性表
顺序存储结构实现 2021/4/10完成 链表存储结构实现 2021/4/11完成
栈
顺序存储结果实现 2021/4/13完成 链式存储结构实现 2021/4/15完成
队列
链式存储结构实现 2021/4/20完成 线性存储结构实现 2021/4/20完成
散列
使用Array和linked结合实现Java中的HashMap 2021/4/21完成 查找算法 待开发...
顺序表查找 有序表查找 线性索引查找 二叉排序树平衡二叉树 多路查找树 散列表(哈希表)查找
排序算法 待开发...
冒泡排序 简单选择排序 直接插入排序 希尔排序 堆排序 归并排序 快速排序
等等......
该项目严格遵循Java语言的编码规范,并且有很详细的注释
并且每种数据结构都定义了接口,通过数组方式和链表方式分别实现,很适合大家学习.
下方为用数组实现的线性表的部分代码,供大家预览.
/**
* 默认容量
*/
private static final int DEFAULT_CAPACITY = 10;
private Object [] elementData;
/**
* 默认扩容倍数
*/
private static final int DEFAULT_EXPAND_MULTIPLE = 2;
/**
* 元素数量
*/
private int size;
/**
* 创建默认容量(10)的数组线性表
*/
public ArrayList() {
elementData = new Object[DEFAULT_CAPACITY];
size = 0;
}
/**
* 创建指定大小的数组线性表
* @param size 指定大小
* @throws Exception 若传入的容量大于9999或者小于0则抛出此异常
*/
public ArrayList(int size) throws Exception {
if(size <= 0 || size > 9999) throw new Exception("容量数据错误!");
elementData = new Object[size];
}
书名 | 作者 | 译 | 出版社 | ISBN |
---|---|---|---|---|
《大话数据结构》 | 程杰 | 清华大学出版社 | 978-7-302-25565-9 | |
《数据结构与算法分析Java语言描述》 | 马克思·艾伦·维斯 | 陈越 | 机械工业出版社 | 978-7-111-52839-5 |
《Java编程思想》 | Bruce Eckel | 陈昊鹏 | 机械工业出版社 | 978-7-111-2138-6 |
目前,项目并没有完成,仍在继续更新!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。