_数据结构
文章平均质量分 71
跬步至以千里
积累着...
展开
-
BBST之Java实现
邓俊辉老师的数据结构课讲的很好,大多数数据结构都讲的十分清晰透彻,其中BBST就是第七章到第八章的内容,BBST在计算机科学中是十分重要的数据结构,使用在各个领域。然而由于它的变种多种多样,实现复杂,使人望而生怯。在邓老师的课中,就很清楚明白的讲了BBST的应用,特性,以及其变化的目的。并且举出了常见的四种BBST,分别是AVL树,伸展树,B-树以及红黑树。 本博客记录我使用Java理解这四种BB...原创 2021-03-18 16:33:40 · 768 阅读 · 0 评论 -
队列的定义以及实现
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。/* 数据结构:Queue (数组实现) ----引申 ①队列 ②双端队列 ③循环队列 ④优先队列 目标实现循环双端队列原创 2017-08-08 23:29:09 · 395 阅读 · 0 评论 -
二叉树的定义及实现
树形结构是一类重要的非线性结构。树形结构是结点之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。二叉树的递归定义 二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。 二叉树的图论定义 二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树原创 2017-08-13 00:15:50 · 509 阅读 · 0 评论 -
链表的定义以及实现
**链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域**。 /* 数据结构:list 功能: front() 返回第一个元素 back() 返回最后一个元素原创 2017-08-10 00:55:45 · 796 阅读 · 0 评论 -
堆栈的定义和实现
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。原创 2017-08-08 15:52:00 · 1509 阅读 · 0 评论 -
并查集的定义及实现
并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。才写了一小部分,暂时占个坑.代码实现:/* 并查集方法:Union(i,j) 把i,j所在集合合并(没考虑路径,把后面来的结点全设置为第一个root的子节点,find效率高) Union_R(i,j) 注重路径的存储方法,哪两个结点并操作就怎么连。需要根据层次count小树连到大原创 2017-08-13 22:22:31 · 525 阅读 · 0 评论 -
跳跃表的定义及实现
首先按照惯例,照搬别人的定义和介绍hahahaaaaa 跳跃表: Skip List是一种随机化的数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间)。 基本上,跳跃列表是对有序的链表增加上附加的前进链接,增加是以随机化的方式进行的,所以在列表中的查找可以快速的跳过部分列表(因此得名)。 所有操作都以对数随机化的时间进行。Skip List可以很好原创 2017-08-16 22:52:09 · 971 阅读 · 0 评论