![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
方月一 +1
方月皆半。
展开
-
装箱问题
原创 2019-03-06 17:32:16 · 175 阅读 · 0 评论 -
硬币问题
1.硬币问题:设需要支付的面值为n,现有{c1,c2,⋯ ,cm}\{c_1,c_2, \cdots,c_m\}{c1,c2,⋯,cm}这mmm种硬币,问需要最少多少枚硬币能够付清?输入:nnn mmmc1c2c3⋯cmc_1 c_2 c_3 \cdots c_mc1c2c3⋯cm(第1行输入整数n和整数m,用一个空格隔开;第2行输入各硬...原创 2019-03-18 11:13:23 · 182 阅读 · 0 评论 -
二叉树
1.对任何非空二叉树T,如果n0n_0n0为树叶节点数,且度数为2的节点数是n2n_2n2,试证n0=n2+1n_0=n_2+1n0=n2+1.二叉树,n节点数有n-1条边.1个节点若度数为2,显然边数为2,那么n1n_1n1个度数为2的节点的边数为2n22n_22n2;1个节点若度数为1,显然边数为1,那么n1n_1n1个度数为2的节点的边数为2n22n_22n2.设任意二...原创 2019-03-12 14:11:35 · 326 阅读 · 0 评论 -
堆栈
堆栈(Stack)是一组相同数据类型的组合,数据的存取具有“后进先出”LIFO的特点,所有的操作都在顶端进行。其应用有递归,子程序的调用,大楼的电梯,货架上的商品。堆栈有5中基本运算:create #创建一个空堆栈push #把数据压入堆栈顶端,并返回新堆栈pop #将堆栈顶端数据弹出,并返回新堆栈full #判断堆栈是否已...原创 2019-03-12 10:21:54 · 149 阅读 · 0 评论 -
递归问题
1.递归法求n阶层def factorial(i): if i==1: return 1 else: res=factorial(i-1)*i; return res输入:5输出:1202.裴波拉契数列(Fibonacci Polynomial)Fn=Fn−1+Fn−2,n=2,3,4,...F_n=F_{n-1}+F_{...原创 2019-03-12 10:08:46 · 114 阅读 · 0 评论 -
队列
队列是一种抽象数据结构Abstract Data Type,具有FIFO的特点。有5种基本操作,(1)创建空队列、(2)将新数据加入队列的末尾并返回新队列、(3)删除队列前端的数据并返回新队列、(4)返回队列前端的值、(5)队列为空的判断。同时,使用front和rear两个指针来分别指向队列的前端和末尾。# 链表实现队列,以student为实例class student: def ...原创 2019-03-16 14:32:23 · 66 阅读 · 0 评论 -
铁路调度问题
编号为1,2,3,...,n1,2,3,...,n1,2,3,...,n的车厢被拖入堆栈,并可以在任何时候将它拖出。例如,n=3,分别有5种出栈方式:123,132,213,231,321。而排列312是不可能发生的,因为堆栈的LIFO原则。编号为1,2,3,...,n1,2,3,...,n1,2,3,...,n的车厢被压入堆栈,设其出栈序号为P1,P2,...,PnP_1,P_2,...,P_...原创 2019-03-14 09:44:59 · 1116 阅读 · 0 评论 -
图的遍历
图的遍历是指从某个顶点V1V_1V1开始,遍历可以经过V1V_1V1到达的顶点,接着遍历下一个顶点直到全部的顶点遍历完毕为止。通过图的遍历可以判断该图是否连通,并找出连通分支和路径。图的遍历有两种方法,深度优先遍历和广度优先遍历。深度优先遍历DFS图的深度优先遍历运用了堆栈和递归两种数据结构的技巧,由于此方法会造成无限循环,故在遍历时加入一个变量用以判断该点是否被遍历过。广度优先遍历B...原创 2019-03-16 11:18:18 · 106 阅读 · 0 评论 -
科赫曲线
科赫曲线是一种不规则碎片,具有递归结构的图形,可以通过下述递归函数的调用画出:将给定线段(p1,p2)(p_1,p_2)(p1,p2)三等分以三等分点s,ts,ts,t为顶点作出正三角形(s,u,t)(s,u,t)(s,u,t)对线段(p1,s)(p_1,s)(p1,s),线段(s,u)(s,u)(s,u),线段(u,t)(u,t)(u,t),线段(t,p2)(t,p_2)(t,p...原创 2019-03-14 22:15:17 · 4696 阅读 · 0 评论 -
插入排序
优点:快速处理相对有序的数据,稳定排序。时间复杂度:O(n2)O(n^{2})O(n2)分析:开头元素视作已排序,将为排序的元素一个一个插入已经排好序的数组中。#include <stdio.h>int printTrace(int A[], int N) { for (int i = 0;i<N;i++) { if (i>0) { printf(&qu原创 2019-03-06 21:42:27 · 83 阅读 · 0 评论 -
线段树
这个写得不错后续再用py实现以下原创 2019-04-11 16:55:56 · 66 阅读 · 0 评论