关闭

二叉查找树C语言实现及其可视化

0, 二叉搜索树的定义:(二叉查找树)(二叉排序树)       (1)若左子树非空,则左子树上的所有的节点的值都小于根节点的值       (2)若右子树非空,则右子树上的所有的节点的值都大于根节点的值       (3)其左右子树都是二叉搜索树                   1,二叉查找树的表示法 struct TreeNode; typedef struct Tr...
阅读(620) 评论(0)

二叉树的基本操作

常用的二叉树的链式存储结构有二叉链表和三叉链表来表示,其数据结构的C语言定义以及示意图如下: 本来介绍基于二叉链表的存储结构上的二叉树的几个常用的操作:   1.二叉树的创建,   2.使用递归算法进行二叉树的先序,中序和后序遍历。   3.使用非递归算法进行二叉树的中序遍历(u需要借助于栈)   4.借助于数据结构队列实现二叉树的层序遍历。   5.一些其他的函数,求取叶子节...
阅读(440) 评论(0)

Kruskal算法求MST(最小生成树)

Kruskal算法求最小生成树使用的图的存储结构是图的边表存储结构 #include #include #define MAX_VERTAX_SIZE 20 #define MAX_EAGE_SIZE 50 #define OK 1 #define ERROR 0 typedef int Status; typedef char VertaxElemType; typedef struct...
阅读(299) 评论(0)

Prim算法求MST(最小生成树)

Prim算法求最小生成树使用的图的存储结构是图的邻接矩阵 #include #define MAX_VERTAX_SIZE 20 #define INFINITE 65535 #define OK 1 #define ERROR 0 //图的邻接矩阵表示的结构定义 typedef int Status; typedef char VertaxElemType; typedef str...
阅读(201) 评论(0)

马踏棋盘问题

问题描述:将马随机放在国际象棋的Board[0~7][0~7]的某个方格中,马按走棋规则进行移动。走遍棋盘上全部64个方格并且不能重复。求出马的行走路线,并按求出的行走路线,将数字1,2,…,64依次填入一个8×8的方阵,输出之, 使用的思想可以理解为图的深度优先遍历。 #include #include #define CHESS_SIZE 5 int chess[CHESS_SIZE]...
阅读(367) 评论(0)

图的邻接表存储表示 图的深度优先遍历和图的广度优先遍历

#include #include #define MAX_VERTAX_SIZE 20 #define OK 1 #define ERROR 0 typedef int Status; typedef char ElemType; typedef struct EageNode{ int adjacentVertax; struct EageNode* nextAdjacentVert...
阅读(3209) 评论(0)

图的邻接矩阵存储表示 深度优先和广度优先遍历

#include #include #define OK 1 #define ERROR 0 #define MAX_VERTAX_SIZE 20 typedef char VerElemType; typedef char ElemType; typedef int Status; typedef struct Graph{ VerElemType VertaxMatrix[MAX_VE...
阅读(1500) 评论(0)

二叉树的链式存储结构 前序 后序 中序 层序遍历操作实现 判断是否完全二叉树

#include #include #define OK 1 #define ERROR 0 #define YES 1 #define NO 0 typedef int Status; typedef char ElemType; typedef struct BiTreeNode{ ElemType data; struct BiTreeNode *lchild, *rchild; ...
阅读(684) 评论(0)

线索二叉树及其遍历

遍历二叉树就是以一定的规则将二叉树中的节点排列成一个线性序列,从而得到二叉树节点的各种遍历序列,其实质是:对一个非线性的结构进行线性化。使得在这个访问序列中每一个节点都有一个直接前驱和直接后继。传统的链式结构只能体现一种父子关系,¥不能直接得到节点在遍历中的前驱和后继¥,而我们知道二叉链表表示的二叉树中有大量的空指针,当使用这些空的指针存放指向节点的前驱和后继的指针时,则可以更加方便的运用二叉树的...
阅读(257) 评论(0)

链队列简单应用将输入的句子输出

#include #include #define OK 1 #define ERROR 0 typedef int Status; typedef char Elemtype; typedef struct QueueNode{ Elemtype data; struct QueueNode* next; }QueueNode,*QueueNodePtr; typedef struct ...
阅读(315) 评论(0)

顺序队列的实现

#include #include #define OK 1 #define ERROR 0 #define QUEUE_INIT_SIZE 5 typedef int Status; typedef int Elemtype; typedef struct QuqQueue{ Elemtype* base; int front; int rear; }SuqQueue; Status...
阅读(158) 评论(0)

KMP算法

/* next数组是KMP算法的关键,next数组的作用是:当模式串T和主串S失配 * ,next数组对应的元素指导应该用T串中的哪一个元素进行下一轮的匹配 * next数组和T串相关,和S串无关。KMP的关键是next数组的求法。 * * ——————————————————————————————————————————————————————————————————— * | T...
阅读(141) 评论(0)

表达式求值-栈和队列的应用

#include #include #define OK 1 #define ERROR 0 #define STACK_SIZE 20 #define STACK_INCREMENT 10 #define QUEUE_SIZE 20 typedef int Status; typedef char StackElemtype; typedef struct Stack{ StackEle...
阅读(430) 评论(0)

栈应用之将中缀表达式转化为后缀表达式(逆波兰表达式)

#include #include #define OK 1 #define ERROR 0 #define STACK_INIT_SIZE 20 #define STACK_INCREMENT 10 typedef char Elemtype; typedef int Status; typedef struct StackNode{ Elemtype* base; Elemt...
阅读(199) 评论(0)

栈应用之使用逆波兰输入求表达式的值

#include #include #include #define OK 1 #define ERROR 0 #define STACK_INIT_SIZE 20 #define STACK_INCREMENT 10 #define DIGITBUFFER 10 typedef int Status; typedef double Elemtype; typedef stru...
阅读(167) 评论(0)
28条 共2页1 2 下一页 尾页
    个人资料
    • 访问:57656次
    • 积分:1255
    • 等级:
    • 排名:千里之外
    • 原创:71篇
    • 转载:0篇
    • 译文:0篇
    • 评论:37条
    最新评论