
数据结构与算法
文章平均质量分 77
luozuolincool
这个作者很懒,什么都没留下…
展开
-
C# 哈夫曼树
//哈夫曼树构造的基本思想,从list中取出最小的两个节点,构造出他们的父节点, //然后将这两个节点从list中删除,将他们的父节点插入list中,左孩子code设置为0,右孩子code设置为1, //直到list为空。 //接下来遍历以list中节点为根节点的树。原创 2014-09-16 16:21:58 · 1964 阅读 · 0 评论 -
C# 二叉树遍历
C#完成的二叉树递归和非递归的遍历。BTreeNode是节点类,Visited是ENUM类型的表示当前节点是否被访问以及被访问的是左孩子还是右孩子(非递归后序遍历用到)BTree是二叉树类,preVisit,InVisit,BackVisit分别是递归的前中后序遍历,preVisit1,InVisit1,BackVisit1分别是 非递归的前中后序遍历原创 2014-09-12 11:28:18 · 1836 阅读 · 0 评论 -
C# 堆
堆是一种非常有用的数据结构,下面的C#以插入数据的方式创建最大堆,然后实现了堆的插入和删除操作。原创 2014-09-16 13:14:22 · 2026 阅读 · 0 评论 -
KMP算法 C#简单实现
最近在学习数据结构,将KMP算法用C#简单实现了下。原创 2014-09-10 13:25:58 · 1574 阅读 · 0 评论 -
C# 0-1背包问题
0-1背包问题基本思想:p[i,j]表示在前面i个物品总价值为j时的价值最大值,str[i, j]表示在前面i个物品总价值为j时的价值最大值时的物品重量串。i=0 或者j=0时:p[i, j] = 0;str[i, j] = "";第i件物品的在重量小于j时可以放入背包p[i, j] = p[i - 1, j - w[i - 1]] + v[i - 1] > p[i - 1, j] ? p[i - 1, j - w[i - 1]] + v[i - 1] : p[i - 1, j]; str[i原创 2014-10-15 17:03:30 · 2593 阅读 · 1 评论 -
C# 最长公共子序列
本程序实现了字符串的最长公共子序列的方法:str[i,j]数组中保存str1,str2长度分别为0-i,0-j之间的最长公共子序列,s[i,j]数组中保存str1,str2长度分别为0-i,0-j之间的最长公共子序列的长度;s[i,j]=0,i=0或者j=0s[i,j]=s[i - 1, j - 1] + 1;str1[i]=str2[j]s[i,j]=max{s[i - 1, j ],s[i , j-1 ] };str1[i]!=str2[j]原创 2014-10-15 15:37:52 · 2025 阅读 · 0 评论 -
C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
下面列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序,然后是测试的例子原创 2014-10-15 11:05:02 · 1821 阅读 · 2 评论 -
图基本算法:深度广度遍历最小生成树
import org.eclipse.jetty.util.ArrayQueue;import java.util.HashMap;import java.util.Queue;//图的基本算法public class Graph { //图邻接矩阵 //节点之间不连通用 65535表示 private static int[][] arcs; //节点原创 2017-03-10 13:35:44 · 941 阅读 · 0 评论 -
java实现:快速排序,基数排序,计数排序,归并排序,堆排序,希尔排序
import java.util.ArrayList;import java.util.List;public class Suanfa { static int [] array={12,122,4,23,45,333,2,5}; //快速排序:将数据分为左右两部分,左边都比右边小 public static void QuakeSort(int [] a,in原创 2017-03-10 13:39:16 · 472 阅读 · 0 评论