数据结构
文章平均质量分 59
qq_41478279
这个作者很懒,什么都没留下…
展开
-
JAVA动态数组实现(顺序表)
从我开始接触各种编程语言,最常用最简单的数据结构就是数组啦!但是我们用着用着就会发现它的局限性,在使用过程中它的长度是不变的,就会有时限制我们的需求。那就会想到怎么让它可变呢?变得灵活呢?JAVA中已经有一个封装好的可以直接使用的API——ArrayList,就是一种动态数组,但是下面我们要自己用数组实现一个动态数组,直接满足我们的需求。一.在实现之前,先给大家做些准备工作1.要怎么实现动态数...原创 2018-11-20 16:05:13 · 605 阅读 · 0 评论 -
Hash表的实现——拉链法
一.基础的概念问题·我们最常用的两种数据结构就是数组和链表,各自的优缺点很明确,对于数组来说,搜索某个下标位置的元素很快,但进行插入和删除操作就很慢,链表在内存中是离散存储的,查找具体某个元素比较慢,但插入删除操作很快。但是有时需要对大量数据进行查找以及插入删除操作,这时就需要用到哈希表,是根据关键码值(Key value)而直接进行访问的数据结构。·Hash我们百度一下英文意思就是把其弄乱,...原创 2018-11-21 13:04:22 · 3573 阅读 · 0 评论 -
栈和队列及JAVA实现
一.栈(LIFO)和队列(FIFO)也是经常使用的数据结构,我们经常用到的递归,实现时就是用栈保存相关的调用函数以及变量,线程在实现时也用栈来保存一些函数调用以及变量。栈其实是一种受限制的线性表,它对存储数据的规则是只能从一端进入数据,删除数据的时候也只能删除栈顶的数据,就是大家俗知的后进先出。队列和栈的最大不同就是队列是先进先出。二.栈和队列的性质栈:栈是只能进行一端插入删除操作的特殊线性...原创 2018-11-21 21:05:41 · 1944 阅读 · 0 评论 -
用两个栈实现队列以及用两个队列实现栈(面试热题)
上一篇博客我讲到了栈和队列的实现,那今天就来实现一个两个具体的问题。一.用两个栈实现队列的解题思路首先来想一下栈是后进先出的,队列是先进先出的,那要用两个栈来实现队列的尾插入和头删除怎么做呢?·先来看一下如何实现队列的尾插入,可以先用任意一个空的栈来存插入的数据,有数据就一直向同一个栈加,另一个栈空着,后面删除操作会用到。·再来看一下队列的删除,由于队列要从队首删除,但是第一个数据放在了...原创 2018-11-21 21:32:10 · 141 阅读 · 0 评论 -
数据结构——堆
1.容易蒙圈的概念问题一般我在学习一个新的东西的时候都会在脑子里有一大堆问题!那么到底堆是什么?是一种什么样的数据结构呢?用堆可以来干什么呢?让我来自问自答哈:堆其实说白了就是一种二叉树这类的数据结构,哪种?堆就是一种基于完全二叉树的连结构(完全二叉树就是除了最底层,其它层都必须填满,最后一层可以从左到右填满);平时生活中,我们有时会说一堆人,一堆某某东西,其实数据结构里的堆也和生活中的类似,...原创 2018-11-19 20:27:41 · 8478 阅读 · 0 评论