![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 64
后脑勺
这个作者很懒,什么都没留下…
展开
-
C语言单链表实现11个功能完全详解
#include "stdafx.h"#include "stdio.h"#include #include "string.h" typedef int elemType ; /************************************************************************//* 以下是关于线性表链接存储(单转载 2016-07-26 13:23:10 · 1824 阅读 · 0 评论 -
数据结构之队列(C实现)
一、队列是什么 队列是一种可以实现“先进先出”的存储结构。其实,说简单点,队列就是排队,跟我们日常生活中到银行取钱排队,排队打饭在道理上是一样的。 队列通常可以分为两种类型: ①链式队列(由链表实现)。 ②静态队列(由数组实现),静态队列通常都必须是循环队列。 由于链式队列跟链表差不多,所以在这里只针对循环队列来说明并实践。转载 2016-08-14 15:34:29 · 7745 阅读 · 0 评论 -
Hash算法冲突解决方法分析
就不自己写了,直接贴下吧看了ConcurrentHashMap的实现, 使用的是拉链法.虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是转载 2016-09-04 22:59:52 · 4775 阅读 · 1 评论 -
图文并茂用地址分析双向链表
网上很多对双向链表解释的文章都是用这个结构: 它们的连接情况是这样的: 相当的不直观,今天我要从详细的地址出发来解释双向链表的原理。 现定义一个结构体如下:struct student{char name;struct student *next;struct student *prior;};转载 2016-08-24 16:09:54 · 378 阅读 · 0 评论 -
哈夫曼树以及编解码
这一篇要总结的是树中的最后一种,即哈夫曼树,我想从以下几点对其进行总结:1,什么是哈夫曼树?2,如何构建哈夫曼树?3,哈夫曼编码?4,算法实现?回到顶部一,什么是哈夫曼树什么是哈夫曼树呢?哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树。下面用一幅图来说明。它们的带权路径长度分别为:图a: WPL=5*转载 2016-09-10 14:43:39 · 40860 阅读 · 2 评论 -
B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,转载 2016-09-09 22:36:08 · 346 阅读 · 0 评论 -
c++ stl栈容器stack的pop(),push()等用法介绍及头文件
c++ stl栈stack介绍C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。c++ stl栈stack的头文件为: #include c++ stl栈stack的成员函数介绍操作 比较和分配堆栈empty() 堆栈为空则返回真pop() 移除栈顶元素push() 在栈顶增加元转载 2016-07-29 17:22:18 · 72954 阅读 · 0 评论 -
C++ stl队列Queue用法介绍:删除,插入等操作代码举例
C++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。 C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。C++队列Queue类成员函数如下:back()返回最后一个元素empty()如果队列空则返回真fr转载 2016-07-29 17:28:01 · 44249 阅读 · 0 评论 -
栈的操作
数据结构中的栈是什么举一个简单的例子:在往箱子里面放衣物的时候,放在最上面的衣物总是我们最后放上去的;而当我们从箱子里取出衣物的时候,总是最先拿出上面的。这就是现实生活中的栈。准确的讲,栈就是一种可以实现“先进后出(或者叫后进先出)”的存储结构。学过数据结构的人都知道:栈可以用两种方式来实现,一种方法是用数组实现栈,这种栈成为静态栈;另外一种方法是用链表实现栈,这种栈叫做动转载 2016-07-27 14:26:49 · 459 阅读 · 0 评论 -
C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
#include #include #include typedef int ElemType; //数据类型//定义二叉树结构,与单链表相似,多了一个右孩子结点typedef struct BiTNode{ElemType data; //数据域struct BiTNode*lChild, *rChlid;//左右子树域}BiTNode转载 2016-07-26 16:54:49 · 21625 阅读 · 6 评论 -
反转单链表的几种方法
最近试着做一些笔试面试题,既是为来年找工作做准备,也可以做为数据结构和算法的复习笔记,就陆续发在这里吧,有需要的朋友可以看一下,如果有没考虑周全的地方欢迎指正。 先来一个最常见的题目:反转单链表。假设单链表的数据结构定义如下: typedef struct LNode{ int data; st转载 2016-09-08 02:58:43 · 466 阅读 · 0 评论