
算法数据结构
文章平均质量分 59
mindlesslcc
这个作者很懒,什么都没留下…
展开
-
二叉树建立与遍历递归操作c++实现
#include #include #include using namespace std;//二叉树的数据类型typedef char BiTType;//二叉树结构体typedef struct BiTNode{BiTType data;BiTNode *lChild,*rChild;}BiTNode,*BiTree;原创 2013-12-14 00:50:32 · 2198 阅读 · 0 评论 -
邻接矩阵图的创建及遍历
#include #include #include typedef char VertexType; //顶点的数据类型typedef int EdgeType; //边的权值数据类型#define MAXVEX 100 //最多的边的数目#define INFINITY 65535typedef struct{ int nu原创 2013-11-23 00:01:37 · 1614 阅读 · 2 评论 -
自己最近写的一些c语言的串的算法
#include #include #include #define TRUE 1#define FALSE 0#define MAXSIZE 100typedef int Status;typedef struct{ char *Str; int Length; int Size;}String;原创 2013-11-04 08:35:05 · 829 阅读 · 0 评论 -
自己写的c++实现的链表类
#includeusing namespace std;struct Node //结点信息{ int Data; Node *Next;};class ListLink //链表类{private:Node *Head; //头结点int Length;public: ListLink(); ListLink(原创 2013-11-03 22:54:37 · 1227 阅读 · 1 评论 -
邻接表实现的图创建及遍历源码
#include #include #include #define MAXVEX 100#define INFINITY 65535typedef int EdgeType; //边的权值的类型typedef char VertexType; //顶点的数据类型typedef struct EdgeNode //邻接表的边的顶点{ int adjve原创 2013-11-22 23:58:03 · 1379 阅读 · 0 评论 -
c语言实现顺序结构的线性表,可自动增加长度的
最近闲来无事,就顺便把数据结构再复习一下,在此把我刚写的c语言实现的顺序结构线性表送给大家,不要吝啬评论哦。#include "stdio.h"#include "stdlib.h"#include "io.h"#include "math.h"#include "time.h"#define TRUE 1#define FALSE 0#de原创 2013-11-02 11:17:50 · 1745 阅读 · 0 评论 -
邻接矩阵实现的广度优先搜索
#include #include #include //循环队列最多#define MAXSIZE 100//定义循环队列的数据结构typedef struct{ int rear; int front; int data[MAXSIZE];}Queue;bool QueueEmpty(Queue *Q){ if(Q->rear =原创 2013-11-23 00:52:41 · 1194 阅读 · 0 评论 -
邻接矩阵实现的拓扑排序
由于书上的大部分都是邻接表实现的拓扑排序,所以我又写了一个顺序栈实现的拓扑排序算法,觉得有一点想法,所以在此和大家分享一下。首先是算法的思想,数据结构这一门课其实追究到底是学习各种数据结构的思想以及根据不同的问题选择适合的数据结构的能力,很难说一种数据结构一定比另一种数据结构好,只能说一种数据结构比那一种数据结构更加适合在这个场合。拓扑排序算法思想就是,首先找寻入度为一的节点,然后原创 2013-11-26 22:46:58 · 5888 阅读 · 6 评论 -
邻接表实现的拓扑排序
拓扑排序算法思想就是,首先找寻入度为一的节点,然后将节点存入栈,然后出栈,把和这个节点相连的入度减去1,寻找和这个节点相连的入度为0的节点,然后再出栈,直至栈为空。#include //邻接矩阵的图的数据结构表示#define INFINITY 65535#define MAXVEX 100typedef int EdgeType;typedef char Vert原创 2013-11-26 22:46:30 · 2863 阅读 · 0 评论 -
所有的排序c语言实现
排序主要有两种,一种是n平方复杂度的,一种是nlogn或者n根号n的。n平方复杂度的主要是一个一个将有序区间缩小,而nlogn或者根号n则是分区间的增大有序序列。#include #include #include #include //在linux中,rand函数的最大值是32位字节,windows是16位字节void swap(int32_t *a,int32_t原创 2013-12-08 15:06:53 · 957 阅读 · 0 评论 -
先序遍历和中序遍历求后序遍历
//由先序遍历和中序遍历得到后序遍历//算法思想//首先由先序遍历的到根节点//然后分成左子树和右子树//把先序遍历的第一个给后序遍历的最后一个#include #include using namespace std;void Post(int len,char *pre,char *in,char *post){//如果长度小于等于0的话,返回原创 2013-12-21 15:34:28 · 1028 阅读 · 0 评论 -
顺序结构实现二叉树的建立和各种遍历
//顺序存储的二叉树虽然节约了左右指针的空间,但是在对于一些深度较大,并且//树 的结构畸形,比如有一些树可能退化成为单链表//这种情况会造成二叉树空间浪费很大#include #include #include //二叉树层序遍历是需要的循环队列#define MAXSIZE 100typedef struct Queue{int data[MAX原创 2013-12-21 14:19:23 · 2159 阅读 · 0 评论 -
由后序和中序遍历得到先序遍历
//由后序遍历和中序遍历得到先序遍历//算法思想//首先由后序遍历得到根节点//然后分成左子树和右子树//把后序遍历的最后一个给先序遍历的第一个#include #include using namespace std;//由中序遍历和后序遍历求得先序遍历void Pre(int len,char *pre,char *in,char *post){原创 2013-12-21 18:14:01 · 1104 阅读 · 0 评论 -
循环顺序队列c++实现
一种重要的线性表叫做队列,是一种标准的FIFO类型的,就是先进先出,在计算机领域,这种数据结构有很广泛的应用,有一种一般形式的数组的队列实现,但是这种队列耗费空间,今天给大家介绍一种充分利用空间的队列,循环队列。#include #include #include #include using namespace std;//循环队列最多100个元素原创 2013-12-18 21:15:39 · 1291 阅读 · 0 评论 -
顺序栈c++实现
栈是计算机里边极其常见的一类数据结构,特别是在编译原理里边,栈溢出(stack overflow)甚至成为世界知名的计算机人员交流网站,顺序栈也是十分常用的。#include #include #include #include using namespace std;//栈最多100个元素#define MAX 100//顺序栈的数据类型原创 2013-12-18 21:49:39 · 1262 阅读 · 0 评论 -
表达式树
在编译器内部,计算表达式的值一般是通过表达式树来解决,今天我就给大家介绍一种表达式树的实现。首先得到一个字符串,里边是一个表达式,算法是:首先得到表达式的最低优先级的运算符,然后分成左边和右边,然后求值。#include#include#include#include#include#includeusing namespace std;//原创 2013-12-29 10:28:19 · 819 阅读 · 0 评论 -
无根树转换成为有根树
/*以前和大家说的都是二叉树,有一种更广义的,就是树,树可以有不仅仅两个子树,其实树和图没有多少差别,树都可以用图的表示方法来表示,就比如邻接矩阵和邻接表来表示树,都是可以的,今天给大家介绍一个两种数据结构之间的转换技巧,就是无根树和有根树之间的转换。无根树,顾名思义,就是一棵没有树根的树,在我这个例子中间,无根树是用邻接表来表示的,但是这棵树没有连通,也就是没有环,所原创 2013-12-28 21:14:44 · 4640 阅读 · 0 评论 -
二叉树基于遍历的进一步操作c++实现
#include #include using namespace std;//二叉树的数据结构typedef char BiTType;typedef struct BiTNode{BiTType data;BiTNode *lChild,*rChild;}BiTNode,*BiTree;//二叉树的类class原创 2013-12-14 01:25:12 · 939 阅读 · 0 评论 -
跳跃表-原理及Java实现
转载自http://www.cnblogs.com/acfox/p/3688607.html跳跃表-原理及Java实现引言:上周现场面试阿里巴巴研发工程师终面,被问到如何让链表的元素查询接近线性时间。笔者苦思良久,缴械投降。面试官告知回去可以看一下跳跃表,遂出此文。 跳跃表的引入我们知道,普通单链表查询一个元素的时间复杂度为O(n),转载 2016-10-18 21:16:48 · 793 阅读 · 0 评论