
数据结构与算法
hfutdog
做技术的人要耐得住寂寞
展开
-
递归问题——以全排列、青蛙过河问题为例
一、递归的概念 递归函数是一种自身调用自身的函数。递归的基本思想是将规模大的问题转化为规模小的相似的子问题来解决。例如,我们可以将一个大洋葱看成一个带着一层洋葱皮的小洋葱,要剥开这个洋葱,就是递归求解的过程。递归包括两种:直接递归和间接递归。直接递归是指一个函数的代码中直接包括了调用自身的代码。间接递归是指类似这样的函数调用:函数A调用函数B,函数B又调用函数A。当然每层递归所给原创 2017-07-20 13:07:30 · 6903 阅读 · 1 评论 -
顺序存储线性表的C++实现——严蔚敏版《数据结构》
因为最近在拿严蔚敏版的《数据结构》复习相关知识,所以就通过动手实现来加深理解,在这里与大家分享。话不多说,直接上代码,注释比较详细,就不另外解说了。 首先是List_Sq.h,这里使用了类模板以及函数模板,便于将该顺序线性表使用在不同的基本数据类型。#ifndef __List_Sq_H__#define __List_Sq_H__#include#includeusi原创 2017-08-14 14:47:08 · 863 阅读 · 0 评论 -
Python实现栈、队列和双端队列
文章目录栈队列双端队列栈栈(stack)是一种容器,它的特点在于只允许在容器的一端(称为栈顶指标,即top)进行加入数据(push)和输出数据(pop)的运算,即按照后进先出(LIFO,Last In First Out)的原理运作。栈可以用顺序表实现,也可以用链表实现。顺序表或链表决定了数据如何存放,栈决定了数据如何操作。Python中的列表(List)就相当于顺序表,现在我们采用Lis...原创 2019-07-07 17:16:10 · 1117 阅读 · 0 评论 -
Python实现单链表、单循环链表、双链表及双循环链表
文章目录前言单链表单循环链表双链表双循环链表错误纠正说明时间复杂度比较关于头结点前言博主最近在复习算法与数据结构,由于平时主力语言是Python,所以找了个用Python讲解数据结构的视频看了下,链接为:https://www.bilibili.com/video/av20982396?p=1。关于链表,视频里讲的很清楚,但是代码有几处小错误,现将其代码纠正,并添加视频里没有讲到的双循环链表...原创 2019-07-01 08:13:06 · 2523 阅读 · 0 评论 -
Python实现二叉树
文章目录树树的术语树的种类树的存储与表示常见的一些树的应用场景二叉树二叉树的性质广度优先遍历深度优先遍历树树是用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成的一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下特点:每个节点有零个或多个子节点;没有父节点的结点称为根节点;每一个非根节点有且只有一个父...原创 2019-07-15 20:26:30 · 1124 阅读 · 0 评论