java数据结构

JCF(java集合框架)

    接口interfaces

a.Collection接口说明

b.Map接口说明

2.类class

栈和队列:

都是线性表操作的子类

1.栈(Stack)LIFO:

a.顺序栈(基于数组)(数组末尾添加和删除元素即可)

b.链式栈(基于链表)

       核心操作:push pop peek

2.队列(Queue)FIFO:

a.链式队列(基于链表)

b.顺序队列——循环队列

       核心操作:offer poll peek

3.双端队列(Deque):LinkedList

      
二叉树

1.前身:树:度 叶子结点 父节点 子节点 层次 高度深度 分支节点

树的表示形式:

Class Node{

       Int value;

       Node firstChild

       Node nextBrother

}

    特点:每个节点最多有两颗子树,即二叉树不存在度大于2的结点

二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树

    特殊的二叉树{ 满二叉树 完全二叉树}
    性质:1.第i层上最多有2^(i-1)

2.深度K最大的结点数2^k-1

3.n0=n2+1;

4.n个结点完全二叉树深度为log2(n+1)

5.存储:顺序存储

             链式存储:a。孩子表示法

                          b.孩子双亲表示法

6.遍历{前序 中序 后序}

7. 基本操作{preorderTraversal

InOrderTraversal

PostOrderTraversal

GetSize

GetLeafSize

getLevelSize}
堆(heap)

优先级队列——入队一样,出队不一样,按照优先级出队

普通队列:FIFO

    概念:堆是一颗完全二叉树(结构上)
    从节点值的要求

    最大堆:根节点的值一定不小于左右子树
    最小堆:根节点的值一定不大于左右子树

    堆的实现:(基本都是基于二叉树——二叉堆)

***最大堆—》根节点>=左右子树

                    层次和节点的大小没有任何关系***

相同数据可以构建成多种类型的堆(最大&最小)

    堆的表示——(数组)

堆的三大核心操作   //add(val)向堆中添加元素 siftUp(元素上浮)

                           //ectractMax():取出最大堆 siftDown(元素下沉)

                          //heapify 将任意一个数组堆化 add +siftDown

****原地堆排序***  O(nlogn)

    将任意数组heapify(siftDown) 调整为最大堆
    调整最大值与数组末尾的位置(siftDown 与之前不同:不考虑已交换元素)

文章链接: https://www.mfisp.com/22057.html

文章标题:java数据结构

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程

数据结构

2023-7-14 13:08:49

建站教程

java数据结构

2023-7-14 13:12:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠