数据结构和算法
文章平均质量分 78
Garyhou
这个作者很懒,什么都没留下…
展开
-
用无序链表实现字典ADT(C++描述)
#include using namespace std;class empty ...{ };//sngly-linked list nodetemplate class Link ...{public: Elem element; //value for this node Link *next; Link(const Elem& elemval, Lin转载 2007-02-14 02:38:00 · 1527 阅读 · 1 评论 -
二叉搜索树的建立
最近学习的数据结构。在树和二叉树中程序实现的很少。今天把二叉搜索树建立了,其实在二叉搜索树中插入和查找几乎是一样的。所以我为了更好的理解。在插入结点是我用非递归的实现。其实在非递归中还能很好的理解插入的过程。在查找中我就用了递归的方法。但是思路就没有非递归那样的清晰了,而删除函数我就没有写上去了,其实在学二叉树中我自己觉得在一些算法中还是很容易理解的。但是真正的编程实现就有一定的难度了,我这个原创 2007-03-23 20:09:00 · 3558 阅读 · 0 评论 -
二叉树的前序递归建立的详解
这个二叉树的创建方法清华那本书中有一个通过前序建立的二叉树。我根据那里写了一个算法。void BinTree::Create(BinTreeNodeT *Troot){ char ch; cin>>ch; if(ch==$) Troot=NULL; else { Troot=new BinTreeNodeT原创 2007-03-23 20:12:00 · 2020 阅读 · 0 评论 -
最小堆优先队列C++实现
在建立最小堆或最大堆时。最主要的就是理解。SiftDown和SiftUp算法的实现问题。其实我觉得自己在画一棵树。先比较左右再比较父点之间。是最大堆往上。最小堆往下。就很能理解了,下面程序是最小堆。#include using namespace std;templateclass MinHeap{private: Elem* heapArray; int CurrentSize; int原创 2007-03-27 16:51:00 · 2286 阅读 · 1 评论 -
前序,中序,后序,广度的非递归程序实现
早学完了二叉树。也知道了前序,中序,后序,广度的非递归是怎么实现的。但是一直没有写出程序出来。今天周末就把他写出来了,我觉得这些程序都很容易理解。所有没写什么注释了,这是用C++实现的。在栈是用STL种的栈实现的。如果大家用C语言编写,就一定要记得把它的栈写出来才可以实现。在整个程序中比较难理解的就是找父亲结点的算法和后序非递归实现的A,B。仔细理解还是看的懂的。程序我在VC6.0中实现的。其他编原创 2007-03-27 16:53:00 · 753 阅读 · 0 评论 -
图算法的实现
#define UNVISITED 0#define VISITED 1#define INFINITY 9999999#define ROOT -1#include #include #include "LList.h"#include "minheap.h"#include //数据结构部分:/**************** 图的边的定义 ***************/cl原创 2007-04-12 13:36:00 · 1361 阅读 · 0 评论 -
排序算法的实现
// 排序算法的实现#include using namespace std;//插入排序void swap(int Array[],int i,int j){ int temp=Array[i]; Array[i]=Array[j]; Array[j]=temp;}void InsertSort(int Array[],int n){ for(int i=1;i原创 2008-03-29 19:10:00 · 502 阅读 · 0 评论 -
无向图的最小支撑树Kruskal算法的实现
// 无向图的最小支撑树Kruskal算法的实现//主题: 用邻接表的方式实现最小支撑树Kruskal算法//作者:Andyhou//时间:2008年4月28日//具体算法实现:// 采用的是最小堆的方式找最小边,用等价类的方式步步合并最小的边。// 程序中还声明了一个等价类。#原创 2008-04-29 19:43:00 · 1406 阅读 · 1 评论 -
有向图的邻接表的建立和个类算法的实现
有向图的邻接表的建立和个类算法的实现//主题:用邻接表的方式实现有向图的一些算法//作者:侯永华//时间:2008年4月26日//内容:具体实现:创建向图的邻接存储方式。打印邻接表的个顶点数据, //建立邻接表 void CreateAdj(); //打印邻接表 //void printAll(); //删除邻接表 //void D原创 2008-04-29 19:51:00 · 4101 阅读 · 1 评论 -
数据结构中的关于拉链的举例
数据结构中的关于拉链的举例作者:andyhou 时间:2008年4月20日 这几天在复习数据结构没事编程练习写点东西。好久没动手有点生疏了。呵呵!! 在数据结构中有很多的地方都涉及都拉链来解决问题。虽然我们每个人对这个很熟悉。但是也有很多人看似觉得很简单。就是从一个数组中拉一条链出来存储一些数据,但是到了真正实现的时候却不知道怎么下手,似乎也觉得很麻烦,而且写出来的程序错原创 2008-04-29 19:54:00 · 890 阅读 · 0 评论 -
无向图的最小支撑树Prim算法的实现
无向图的最小支撑树Prim算法的实现//主题:实现最小支撑树的算法//作者:Andyhou//时间:2008年4月27日//具体重要算法:// 采用了最小堆来实现取最小边,定义了一个边的类。// Prim算法的具体实现。// 顶点的存储都是从1开始。#include using namespa原创 2008-04-29 19:46:00 · 1236 阅读 · 0 评论 -
数据结构第5、6两章总结
第五六两章很快就从开始走向了尾声,在走过的这一着里,不知道自己吸收与消化了多少。现在惯例写个简单的总结。 在第五章中介绍了数组、矩阵的存储、广义表的概念及操作等。这一部份中,考得较多的就是各种矩阵在相应的存储方式下相应的地址,主要考如何计算它的地址,要求写公式,或是某一个具体的地址。感觉三对角矩阵的i,j,k的关系还是略有些麻烦,它要求原创 2007-01-25 21:16:00 · 788 阅读 · 0 评论 -
<数据结构>(严版)第1~4章学习总结
截至今夜为止,数据结构的前四章的学习终于算是暂告一段落。基本已经记不清楚所用的时间了,大约是用了两星期左右吧,当然这是复习,在此之前已经看过若干遍的数据结构,只是一直觉得未曾完全把握所学的内容。至此,也并不意味着已经彻底掌握了,只是在较以前的基础上,又进一步理解了书中所述的主要内容。而现在,就此作一个简单的总结。 在这四章中,第一章不用说,主要是开场白,介绍数据结构这一门课程的基本概念,以及所用原创 2007-01-25 21:14:00 · 1502 阅读 · 0 评论 -
串模式匹配算法-我的理解
我今天才真正的看懂了,串模式匹配算法KMP,我以前学过但是没有深入的理解。今天我让自己理解了,其实说到底要特别注意KMP算法和其中的NEXT值的求法是一个递推的过程,首先来看看最简单的匹配算法的形式。int index(HString s, HString T, int pos){ int i=pos; int j=1; while(i原创 2007-02-12 22:52:00 · 1281 阅读 · 0 评论 -
详解链表的转置问题
//题目: ------------------链表的转置------------------------// 要求:// 将链表的就地转置。就是将链表的数据存储倒置//例:// 输入:12345678910// 输出:10987654321// 算法分析:// 程序最主要的地方再于将头接点的后的每个接点都放再原创 2007-02-15 01:45:00 · 2685 阅读 · 0 评论 -
贪心算法的详解
贪心策略的特点与应用一、 贪心策略的定义 【定义1】 贪心策略是指从问题的初始状态出发,通过若干次的贪心选择而得出最优值(或较优解)的一种解题方法。 其实,从"贪心策略"一词我们便可以看出,贪心策略总是做出在当前看来是最优的选择,也就是说贪心策略并不是从整体上加以考虑,它所做出的选择只是在某种意义上的局部最优解,而许多问题自身的特性决定了该题运用贪心策略可以得到转载 2007-02-24 14:24:00 · 14295 阅读 · 1 评论 -
穿线二叉树
// ThreadBinaryTreeNode.h: interface for the ThreadBinaryTreeNode class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_THREADBINARYTREENODE_H__C8A1F5EE_AE5A原创 2007-03-09 16:13:00 · 1413 阅读 · 0 评论 -
对称序穿线树的实现
// ThreadBinaryTree.h: interface for the ThreadBinaryTree class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_THREADBINARYTREE_H__73E5ADE5_F47C_463B_B199_9原创 2007-03-09 16:22:00 · 2172 阅读 · 1 评论 -
二叉搜索树的实现
// BinarySearchTree.h: interface for the BinarySearchTree class.////////////////////////////////////////////////////////////////////////#include "BinaryTreeNode.h"#include "BinaryTree1.h"#if !define原创 2007-03-09 16:15:00 · 646 阅读 · 0 评论 -
二叉树的结点实现
// BinaryTreeNode.h: interface for the BinaryTreeNode class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_BINARYTREENODE_H__65C73C3B_E763_40D9_8460_F570311原创 2007-03-09 16:18:00 · 688 阅读 · 0 评论 -
二叉树的递归穿线实现
// BinaryTree1.h: interface for the BinaryTree class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_BINARYTREE1_H__99C2FAA0_E42F_4CB0_8B01_C36F1FA6F1EE__INC原创 2007-03-09 16:08:00 · 745 阅读 · 0 评论 -
堆和优先队列的实现
// MinHeap.h: interface for the MinHeap class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_MINHEAP_H__6BC12E9A_B926_47C2_8ACF_AA4004A0546F__INCLUDED_)#def原创 2007-03-09 16:11:00 · 728 阅读 · 0 评论 -
Huffman树的实现
// HuffmanTree.h: interface for the HuffmanTree class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_HUFFMANTREE_H__E2FE6C12_C0A9_4483_AF1B_9623F1FD0EF8__IN原创 2007-03-09 16:19:00 · 945 阅读 · 0 评论 -
败者树的实现(c++)
#include #include #include #include #include #define MAX_BUFFER 512 //buffer最大容量#define NO_MEANING 99999999 //当某顺串已经全部处理完时,给败方树外部节点填充这个超大值#define MAX 10 //最大选手数目/********************* 缓冲区类,用环状数组实现原创 2008-04-29 19:52:00 · 2350 阅读 · 1 评论