数据结构
文章平均质量分 82
yingge_0110
这个作者很懒,什么都没留下…
展开
-
动态规划解最长子序列
/////////////动态规划解最长子序列/////////////////////动态规划:对大问题进行小问题分解 情况1:当前元素在比对序列存在相同元素,子序列增加,比对序列减少 情况2:当前元素在比对序列不存在相同元素,子序列不变,比对序列不变 使用结构体: SaveLcs (bool LCSExist; int length;) //保存lcs存在与否的信息原创 2017-06-04 17:21:40 · 621 阅读 · 0 评论 -
线性表存储单词并统计出现次数
//用线性表(数组或链表)存储单词,以实现单词出现次数统计。#include#include#include#define MaxSize 20typedef struct LNode{ char ch[MaxSize]; //保存单词,最长单词20个字母 int num; //保存出现次数}Record;//单词重复检测bool DupliIf (char a[],Reco原创 2017-05-15 09:20:39 · 1051 阅读 · 0 评论 -
哈夫曼编码生成哈夫曼树
//////////////哈夫曼编码//////////////////* //maxnode = 2*n-1哈夫曼编码:从队列中取出权重最小的两个节点,进行构造树 将新生成的节点作为父节点 使用结构体: Node(node1,node2,weight) //权重边信息保存 HuffmanTree(weight,family,lchild,rchil原创 2017-05-21 19:41:59 · 1203 阅读 · 0 评论 -
回溯法解0-1背包问题
////////回溯法解背包问题///////////算法思想: 运用深度优先算法解决,并在计算过程中通过确定上限减少 不必要的枝干计算。使用结构体: item{int value;int volume;} //保存物品的价值与体积 sqStack(item item;int top) //栈用于深度优先算法函数说明:BacktrackPackage 输入: item ite[]原创 2017-05-15 09:20:36 · 749 阅读 · 0 评论 -
用sunday算法解决字符串匹配问题
题目内容:题目说起来很简单,你会读到两个字符串,每个字符串占据一行,每个字符串的长度均小于10000字符,而且第一个字符串的长度小于第二个字符串的。你的程序要找出第一个字符串在第二个字符串中出现的位置,输出这些位置,如果找不到,则输出-1。注意,第一个字符的位置是0。注意,第一个字符串在第二个字符串中的位置可能不止一处。注意,字符串中可能含有空格。注意,两个字符串的长度一定大于0。输入原创 2017-05-15 09:20:34 · 344 阅读 · 0 评论 -
用深度优先算法递归解决迷宫问题
////////////////////////注释部分/////////////////////////任务: 基于邻接矩阵或邻接表的存储结构, 利用DFS算法解决迷宫问题:给定一个迷宫, 要求输出从入口到出口的所有简单路径,所谓的简单路径是指无圈的路径。算法简析:获得起点与终点,从起点开始对可行的方向进行上右下左 顺序的路径检索,直到遇到迷宫出口。 全局变量:StT原创 2017-05-15 09:20:31 · 1662 阅读 · 0 评论 -
动态规划解背包问题
///////////动态规划解背包问题////////////动态规划:对大问题进行小问题分解 情况1:物品1放入背包,对应子问题:背包容量减少物品1体积后,对剩余物品求解 情况2:物品1不放入背包,对应子问题:背包容量不变,对剩余物品求解。 使用结构体: item{int value;int volume;} //保存物品的价值与体积 memory(int原创 2017-06-04 17:20:03 · 333 阅读 · 0 评论