数据结构

什么是哈希表?

很多人说起“哈希表”,就会直接聚焦到hash函数、“散列”、“杂凑”等方向,会使得初学者一头雾水,反而更加不理解什么,下面就会系统的给大家介绍一下什么是“哈希表”。哈希表又称散列表,一种以「key-value」形式存储数据的数据结构。所谓以「key-value」形式存储数据,

C++字符串常用操作(二)

1.字符串连接操作顾名思义,即将一个字符串链接到另一个字符串的尾部,我们可以创建一个函数,同时利用指针,分别先后全部遍历两个字符串,将其中一个字符串的结束符’\0’去除并链接另一个字符串直到遇到结束符’\0’即可,函数实现为:#include<stdio.h>char*_strcat(chardest

树的遍历之先序遍历二叉树

1.遍历简介:树作为非线性数据结构,在我们取出数据时就需要设计遍历,所谓遍历,就是按照一定的规则性,将数据结构中的所有数据全部依次访问,而二叉树本身并不具有天然的全局次序,故为实现遍历,需通过在各节点与其孩子之间约定某种局部次序,间接地定义某种全局次序,这便是我们常规定的先序,中序,后续遍历。

循环队列的基本操作及C语言代码实现

1.循环队列的初始化我们初始化相比链表而言更为简单了,核心就在于申请空间以及将front指针和rear指针内容赋值为0,即指向第0个元素即可(注意第0个元素内容为空)。其代码可以表示为://初始化cir_queue*init(){cir_queue*q=(cir_queue*)malloc(sizeo

动态查找-平衡二叉树

1.简介平衡二叉树(BalancedBinaryTree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。其中最为经典当属AVL树,

数据结构与算法

请牢记:程序=数据结构+算法1.数据结构发展史1)起源:1968年美国唐•欧•克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构语其操作的著作。我们一般认为本书开创了数据结构的系统概念。

C++STL之multiset与multimap容器

1.MultisetMultiset是set集合容器的一种,其拥有set的全部内容,在此基础之上,multiset还具备了可以重复保存元素的功能,因此会有略微和set的差别。Multise容器在执行insert()时,只要数据不是非法数据和空数据,

解析数据结构:八大数据结构分类

数据结构分类数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示:每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。

最短路径,弗洛伊德(Floyd)算法及C/C++代码实现

1.算法简介弗洛伊德算法与迪杰斯特拉算法是公认的最著名的两种最短路径求解算法,接下来介绍弗洛伊德算法,弗洛伊德算法的思路是:首先初始化距离矩阵,然后从第一个点开始逐渐更新矩阵点值。d[i][j]表示从i点到j点的距离。第k次更新时,判断d[i][k]+d[k][j]与d[i][j]的大小,

竞赛学习路线推荐(算法数据结构)

阅读这一节之前,请确认你熟悉的语言,无论C、C++、java都已经很熟练运用,不存在语法问题了,否则参考本节的学习路线会让你变得着急和打退堂鼓对于已经掌握一种语言可以参赛之后,算法和数据结构的学习,笔者认为大体分三个步骤:那些顺带的、不用专门学的常规算法和数据结构;这些如递归算法、遍历枚举、模拟、素数