随笔分类 - 数据结构与算法
摘要:线性表接口定义:IListDS.cs public interface IListDS<T> { int GetLength(); //求长度 void Clear(); //清空操作 bool IsEmpty(); //判断线性表是否为空 void Append(T item); //附加操作 void Insert(T item, int i); //插入操作 T Delete(int i); //删除操作 T GetElem(int i); //取表元 int Locate(T value); //按值查找 }顺序表的实现:SeqListDS.cs public class
阅读全文
摘要:public class LinkNode<T> { T data; LinkNode<T> nextNode; public T Data { get { return data; } set { data = value; } } public LinkNode<T> NextNode { get { return nextNode; } set { nextNode = value; } } public LinkNode(T data) { this.data = data; } public LinkNode() { } public static
阅读全文
摘要:递归算法探讨递归在计算机科学和数学中是一个很重要的工具,它在程序设计语言中用来定义句法,在数据结构中用来解决表或树形结构的搜索和排序等问题。另外,递归在计算方法、运筹学模型、行为策略和图论的研究中都得到了广泛的应用。1、递归的概念若一个对象部分地包含它自己,或用它自己给自己定义,则称这个对象是递归的;在程序设计中,若一个过程直接地或间接地调用自己,则称这个过程是递归的过程。在定义一个过程或函数时出现了调用本过程或函数的成分,即调用自己本身,称之为直接递归;若过程或函数P调用过程或函数Q,而Q调用P,称之为间接递归。对于“问题定义是递归的,数据结构是递归的,问题解法是递归的”这3种情况,都可以采
阅读全文
摘要:class node<T> { T data; node<T> Lnode, Rnode, Pnode; public T Data { get { return data; } set { data = value; } } public node<T> LNode { get { return Lnode; } set { Lnode = value; } } public node<T> RNode { get { return Rnode; } set { Rnode = value; } } public node<T> P
阅读全文
摘要:简介:有许多的关于数据计算的应用程序中都用到算法。甚至在我们开始运算数据之前,算法的重要性就浮在我们眼前了。比如,我们在查找照片上的人时,必须按从高到低的顺序。我们必须给业绩最好的员工最好的奖金,这就要求我们必须从高到低,或从大到小的顺序排列事物。比如,我们查询数据库时,排序时,要加上Order By语句。我们寻找手机上的某本书时,必须从已经排好序的队列中找。如果你想高效的用二分查找法从数组中查找某个元素,你可能得排序好整个数组。有个问题要求我们必须以字典顺序返回结果时,那么我们想到要排序。一般考虑:假设有一种人,分给他们每人一副大乱顺序的扑克,要求他们按从大到小排序。一些人可能按桩的结构排,
阅读全文