- 博客(46)
- 收藏
- 关注
原创 validate-binary-search-tree
Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node's key. The ...
2019-01-14 19:47:26
193
原创 求二叉树最浅叶子结点们的和
#include <stdio.h>#include <string.h>#include <assert.h>#include <malloc.h>#define maxlen 30typedef struct Node{ struct Node * leftChild; struct Node * rightCh...
2019-01-13 21:29:07
2962
原创 机器学习1
https://www.nowcoder.com/test/question/done?tid=20808378&qid=7173#referAnchor 下列不是SVM核函数的是 多项式核函数 Logistic核函数 径向基核函数 Sigmoid核函数 以...
2019-01-13 21:28:22
430
原创 判断无向图中顶点u与v之间是否存在长度为len的简单路径,存在返回1不存在返回0
注:代码没写注释为了看着清爽点,不懂的地方大家随时留言给我,互相交流学习。#include <stdio.h>#include <stdlib.h>#define maxsize 20typedef struct{ int no; char info;}MGraphVNode;typedef struct{ int n; ...
2018-11-01 21:26:40
2097
6
原创 顺序表的就地逆置
#include <stdio.h>/*题目:数据结构题集18页2.21试写一个算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,...,an)逆置为(an,...,a2,a1)*/#define maxlen 50#define DATATYPE inttypedef struct{ DATATYPE arr[maxlen]; ...
2018-11-01 17:20:27
10807
1
原创 比较两个顺序表的大小
#include <stdio.h>/*题目:数据结构题集17页2.12设 A=(a1,a2,......,am),B=(b1,b2,......,bm)均为顺序表,A'和B'分别是A和B中除去最大共同前缀后的子表,若 A'=B'=空表,则A=B;若 A'=空表,B'!=空表 或者 A'!=空表,B'!=空表,并且A'的首元小于B'的首元,则A<B;否...
2018-11-01 17:20:12
2584
原创 插入一个元素到有序顺序表中,使其再次有序
代码:#include <stdio.h>/*题目:数据结构题集17页2.11设顺序表中数据元素递增有序,试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性算法:逆序遍历顺序表找合适的插入new_elem的位置,并将其插入*/#define maxlen 50typedef struct{ int arr[maxlen]; int le...
2018-11-01 17:19:56
8450
原创 对两个有序顺序表求有序的交集
#include <stdio.h>/*题目:数据结构题集18页25题假设以2个元素依值递增有序排列的线性表A和B分别表示2个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表C,其元素为A和B中元素的交集,且表C中的元素也依值递增有序排列。试对顺序表编写表C的算法。*/#define maxlen 50#define DATATYPE intt...
2018-11-01 17:18:52
2599
原创 让一个前后有序的顺序表整体有序
#include <stdio.h>/*题目:天勤35页真题仿真1.顺序表前m个元素递增有序,后n个元素也递增有序,表中元素存储在下标为0至m+n-1的范围内设计算法,使得整个顺序表递增有序算法:按照直接插入排序的算法,将后n个元素依次插入到前面的有序序列中*/#define maxlen 50#define DATATYPE inttypedef st...
2018-11-01 17:18:10
3585
1
原创 删除顺序表下标从i到j的所有元素
#include <stdio.h>/*题目:天勤40页(4)从一给定的顺序表L中删除下标i至j的所有元素,i<=j,包括i和j,假定i和j都是合法的算法:本质是元素的覆盖操作,并把顺序表的length作及时的更新:list.arr[i]被list.arr[j+1]覆盖list.arr[i+1]被list.arr[j+2]覆盖......list.ar...
2018-11-01 17:17:51
2760
原创 对一个顺序表以首元素为pivot进行partion操作
#include <stdio.h>/*题目:天勤40页(5)将顺序表L中所有小于表头元素的元素放在表的前半部分,大于表头元素的元素放在后半部分顺序表中没有相同元素(这是快速排序的partition部分)算法:基于两个下标变量,一个对顺序表进行从前往后的遍历,一个对顺序表进行从后往前的遍历,并在适当是时机进行值交换*/#define maxlen 50#d...
2018-11-01 17:17:39
417
原创 一次遍历顺序表同时找到最大值和最小值
#include <stdio.h>/*题目:天勤40页思考题(3)在一个有n个整数的顺序表L中,以不多于3n/2的平均比较次数,找出最大值和最小值即通过一次遍历顺序表找出顺序表的最大值和最小值,平均比较次数=n<3n/2*/#define maxlen 50#define DATATYPE inttypedef struct{ DATATYPE...
2018-11-01 17:17:23
5861
原创 将一个顺序表实现循环左移n个位置后的效果
#include <stdio.h>/*题目:天勤41页综合应用题2将存放n个整数的顺序表循环左移P个位置,实现(X0,X1,...,Xn-1)(Xp,Xp+1,...,Xn-1,X0,X1...,Xp-1)算法:实际的操作并不是对顺序表真的进行循环左移,而是通过逆序操作,实现了循环左移的效果将子表(X0,X1...,Xp-1)逆序为(Xp-1,...,X1,X0)...
2018-11-01 17:16:27
1756
原创 确认一个顺序表是否有主元素,如果有找到这个主元素
#include <stdio.h>/*题目:天勤41页综合应用题3找出一个顺序表的主元素——元素个数大于表长一半的元素算法:一次遍历顺序表确定可疑的主元素,二次遍历顺序表确定这个可疑的主元素是否真的个数大于表长的一半*/#define maxlen 50#define DATATYPE inttypedef struct{ DATATYPE ar...
2018-11-01 17:16:08
410
原创 将一个顺序表实现奇数在前,偶数在后(或负数在前,偶数在后)
#include <stdio.h>/*题目:各元素为整数的顺序表,各元素互不相同,设计算法把所有奇数放到偶数的前边要求时间最少,辅助空间最少算法:本质是顺序表的逆置,只不过逆置有条件:前偶后奇才交换*/#define maxlen 50#define DATATYPE inttypedef struct{ DATATYPE arr[maxlen]...
2018-11-01 17:15:16
7509
2
原创 子函数中为指针分配空间
#include <stdio.h>#include <malloc.h>typedef struct node{ int data; struct node *next;}Node,*Linklist;void my_malloc(Linklist *node){ if(*node == NULL){ *node =...
2018-11-01 17:14:35
1288
原创 单链表的冒泡排序
代码:#include <stdio.h>#include <malloc.h>//对单链表使用冒泡排序typedef struct node{ int data; struct node *next; int sort_flag;//标志链表中当前结点是否被排过序}Node, *Linklist;#define sorted ...
2018-09-08 18:50:38
446
原创 就地合并2个按值非递减的单链表
题目:单链表la,lb按值非递减,归并la和lb,得到新的单链表lc,使得lc也按值非递减,并占用原来的空间(就地)。算法思想:以一条链为主链,将另一条的各元素插入到这条主链中。代码:#include <stdio.h>#include <malloc.h>typedef struct node{ int data; struct nod...
2018-09-07 15:12:52
794
原创 数据结构 树笔记-9 直接插入排序
内排序:待排序列完全放在内存中,适用于待排序列中的元素个数不多,足以在内存中进行。外排序:排序过程除了需要在内存中进行,还需要访问外存储器,因为待排序列中的元素个数个数太多了。内排序 之 插入排序插入排序 之 直接插入排序 代码:#include <stdio.h>#define MAX 100typedef struct{ int el...
2018-06-13 00:57:50
177
原创 数据结构 树笔记-8 哈夫曼树的构建与存储
讲述哈夫曼树的构建过程(按照代码的思路):代码:#include <stdio.h>#include <malloc.h>typedef struct{ int weight; int parent; int lchild; int rchild;}HTNode, *HTree;#define INFINITE 5000voi...
2018-06-06 19:17:57
9714
1
原创 数据结构 树笔记-7 二叉树的非递归中序遍历
二叉树的 非递归 中序遍历//#define ElemType char typedef char ElemType;结点中存放的数据的类型的定义 typedef struct BiTNode{树结点的定义 ElemType data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree;BiTNode是一个结构体变量;BiTree...
2018-05-22 19:18:31
238
原创 数据结构 树笔记-6 二叉树的非递归先序遍历
如下这棵二叉树的先序遍历结果为:ABDEFPC针对于上面的这棵二叉树,结合代码,讲述遍历过程:#include <stdio.h>#include <malloc.h> //#define ElemType chartypedef char ElemType; typedef struct BiTNode{ ElemType data; struct BiTNo...
2018-05-17 20:45:16
243
原创 数据结构 树笔记-5 线索二叉树 以及 线索二叉链表
线索二叉链表线索二叉链表 来自于 二叉链表。一个二叉链表,如果存放n个结点,就一定有n+1个空指针域,而在线索链 表中,就让这n+1个空指针域有了用武之地。空指针域 用于存放 某种遍历顺序下的 前驱或者后继的地址。 已知 一棵二叉树的结构: 孩子地址:B的地址A孩子地址:D的地址 孩子地址:NULLB孩子地址:C的地址 孩子地址:NULLD孩子地址:E的地址 孩子地址:NULLC孩子地址:...
2018-05-10 23:33:18
725
原创 数据结构 树笔记-4 二叉树存储结构
既然上面提到了二叉树的存储结构,那么我们进一步详细介绍二叉树的存储结构 先复习一下 逻辑结构 与 物理结构:逻辑结构讲究的是数据之间的逻辑关系,分为:集合结构、线性结构、树形结构、图形结构物理结构讲究的是数据的存储结构,分为:顺序存储结构、链式存储结构 二叉树的存储结构——顺序存储 或者 链式存储 以下针对如下这棵树讲解它的各种存储方式 顺序存储代码定义:// The se...
2018-05-02 23:22:21
394
原创 数据结构 树笔记-3 完全二叉树的性质
完全二叉树的性质1.给定完全二叉树的总结点数,求树高k层完全二叉树的各层结点数:第1层——1=1 第2层——2^1=2 第3层——2^2=4 ......第k-1层——2^(k-2)第k层——1 ~ 2^(k-1)所以k层完全二叉树的总结点数最少是[2^0+2^1+......+2^(k-2)]+1=[2^(k-1)-1]+1=2^(k-1)所以k层完全二叉树的总结点数最多是2^0+2^1+......
2018-04-26 23:40:14
721
原创 数据结构 树笔记-2 二叉树的性质
下午只是大概想了一下可以程序化的思路,大概就是:1. 这是对一棵满二叉树的 宽度优先遍历 与 深度优先遍历 的结合2. 并且不能随便做宽度遍历,必须保证当前这一层中的某个结点的父结点已被选中,才能在此层选中这个结点感觉过程实现起来还是挺复杂的,先不写代码为难自己了。暂时先有个模糊的思路,以后等着积累多了,形成更清晰的思路,再呈现代码吧。 那么,知道了树与二叉树的区别,能继续说出3个结点的树有几种形...
2018-04-25 23:45:02
152
原创 数据结构 树笔记-1 树的定义与结构
树的结构要熟悉树的结构,结构决定性质,性质决定用途1. 树是一种树型的层次结构2. 定义方式上看,树是一种递归的定义方式,因为每个结点均可以作为根结点生出孩子。树的根只有一个,但根结点可以有多个,只要有孩子结点,那么这个结点就是一个根结点,所以除了叶子结点的所有其余结点都 是一个根结点3. 一(作为根结点的这个结点)对多(孩子):直接前驱——父亲结点直接后继——孩子结点 树的根没有直接前驱,...
2018-04-25 12:58:19
226
原创 计算机视觉 之 线性代数基础1
参考1. https://www.cnblogs.com/pinard/p/6251584.html2. https://www.zhihu.com/question/222375073. https://blog.csdn.net/zhongkejingwang/article/details/430535134. 李飞飞的计算机视觉课程...
2018-04-02 10:42:52
991
原创 数据结构 之 Prim算法的应用 之 MST(最小生成树)
算法:Prim 应用:对一个带权无向图生成 (权值)最小生成树 (程序来自《天勤 数据结构 高分笔记》) 今日一签,赠给奋斗的自己和你们:人生不能像做菜,把所有的材料都准备好了才下锅。——李安《饮食男女》 讲述算法前,先做如下的说明:1. 带权无向图的存储把一个共有N个结点的带权无向图的信息(边以及边的权值)存放在一个大小为N乘N的二维方阵中。带权无向图的N个结点的编号是0至N-1。方阵元素[i]...
2018-03-26 11:10:14
548
原创 PAT: A + B for Polynomials
英文试题:1002. A+B for Polynomials (25)This time, you are supposed to find A+B where A and B are two polynomials.InputEach input file contains one test case. Each case occupies 2 lines, and each line cont...
2018-02-09 10:13:55
249
原创 PAT: A + B Format
1001. A+B Format (20)英文题目:Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).I
2018-02-06 17:56:59
174
原创 Binary Tree Inorder Traversal 二叉树的中序遍历(C++:Iterative solution using stack)
题源:leetcode题目:给定一棵二叉树的头节点,以vector的形式返回中序遍历的结果(C++)用语言讲述代码实现过程:C++代码://Iterative solution using stack — O(n) time and O(n) space; vector inorderTraversal(TreeNode* root) {
2018-02-02 19:42:05
395
原创 这次,就让我快速地记住快速排序思想吧
应用——>排序,什么意思?-------------> 排序是一种应用,算法的应用,本身不是算法排序的手段——>交换,什么意思?-------> 交换是排序的本质操作算法思想——>怎么交换,什么意思?-----> 好的算法实现少量的元素交换,不高明的算法实现大量的元素交换怎么排序 取决于 怎么交换,什么意思?--> 比较一下 冒泡 和 选择排序,你就会体悟了~~~自己比较么?当然了
2018-01-31 18:08:55
258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人