
数据结构与算法
文章平均质量分 81
Anwel
这个作者很懒,什么都没留下…
展开
-
循环双链表删除第一个值为x的结点
#include using namespace std;int const NONE = 0;int const DONE = 1; /* run this program using the console pauser or add your own getch, system("pause") or input loop */class List;//结点 class N原创 2017-09-26 21:40:51 · 4171 阅读 · 0 评论 -
c++栈实现简单计算器
/* 栈实现计算器,主要思路就是设置一个符号栈和一个数字栈,在字符串首尾各加一个'#',然后扫描字符串, * 如果是数字进数字栈,如果是运算符号先判断符号优先级,若栈外符号优先级大于栈内符号优先级则进栈, * 小于栈内优先级则符号栈出栈一位,数字栈出栈两位进行计算,结果重新存进数字栈,直到栈外优先级大于栈内, */#include #include #include #inc原创 2017-10-10 13:50:16 · 11699 阅读 · 1 评论 -
浅谈KMP算法
课上学了KMP算法之后有几个地方很是迷茫,课下就查了点资料,这里做下总结,今后忘了还能回来看一下。 首先,KMP算法的主要目的就是比较两个字符串时避免不必要的回溯。一个字符串可能会出现字符串头部和尾部有重复的现象,KMP算法就是根据这个现象,在比较字串时,不在简单地向后移一位,而是在后移时,跳过首位相同的部分再开始比较。例如:判断 ABCDABD 是否是 ABCDABEABCDABD 的原创 2017-10-21 14:01:17 · 309 阅读 · 0 评论 -
二叉树的前序、中序、后序遍历
二叉树的结点定义及类定义:BinaryTree.h因为用的是模板类,.h和.cpp文件不能分开,类定义和函数实现就全写在.h里了主要是二叉树的前、中、后序的递归与非递归周游#ifndef BINARYTREE_H_INCLUDED#define BINARYTREE_H_INCLUDED#include #include #include #include using na原创 2017-11-14 18:21:27 · 850 阅读 · 0 评论 -
最大堆的初始化、插入和删除
最大堆为完全二叉树,采用数组存放数据,父节点的值永远比左右孩子大,但兄弟之间值的大小并不确定。Heap.h:#ifndef HEAP_H_INCLUDED#define HEAP_H_INCLUDED#includeusing namespace std;int const MAX = 20;templateclass MaxHeap{private: T comp原创 2017-12-01 18:19:23 · 2364 阅读 · 0 评论 -
二叉搜索树的插入、搜索和删除
BinarySearchTree.h:#ifndef BINARYSEARCHTREE_H_INCLUDED#define BINARYSEARCHTREE_H_INCLUDED#includeusing namespace std;template class BinarySearchTree;templateclass TreeNode{private: fri原创 2017-11-30 21:52:05 · 294 阅读 · 0 评论