数据结构
文章平均质量分 60
善良超锅锅
hello world!
展开
-
用c++实现简单的单向链表
/*这是我第一次写技术博客,代码是从前几天写的直接粘贴够来的。本人刚开始学数据结构,看过一点c++,所以想用类来实现链表*//* Date: 19/09/11 23:37 Description: 实现单向链表基本的功能 包括:创建,插入,得到元素原创 2011-09-27 23:27:51 · 2923 阅读 · 2 评论 -
KMP算法C语言的实现
还是没搞懂KMP算法,不得不说这事个牛逼的算法。放在这里,便于以后查看int Index_KMP(const char*str,const char*t){int str_size=strlen(str);int t_size=strlen(t);int *next=new int[t_size];GetNext(t,next,t_size);int i=0原创 2011-12-06 20:52:39 · 1949 阅读 · 0 评论 -
模式串匹配普通算法实现
KMP算法没搞懂,先把普通的模式串匹配算法实现再说。很简单直接上代码,int Index(const char*str,const char*t){int str_size=strlen(str);int t_size=strlen(t); //因为用到了strlen()函数,记得头文件包含string.hint i=0,j=原创 2011-12-06 15:44:19 · 1059 阅读 · 0 评论 -
链式二叉树后序遍历的非递归形式,终于搞定了
void PostTraverse(BiTree T)//非递归后序遍历二叉树{ Stack s;//用栈来保存结点 BiTree p,lastvisit; p=T; lastvisit=NULL; while (p!=NULL || !s.IsEmpty()) { while (p!=NULL) //一直向左,直到遇到的最后一个结点没有左孩子原创 2011-12-04 18:45:15 · 1387 阅读 · 0 评论 -
数据结构之栈的类模板实现,可满足任何数据类型
//TStack.h#ifndef _TSTACK_H_#define _TSTACK_H_template struct SNode { Type data; SNode *next;};template class Stack{ private: SNode *top; public: Stack(); ~Stack();原创 2011-12-04 13:49:12 · 1234 阅读 · 0 评论 -
二叉树的创建,先序、中序、后序遍历的递归实现以及层序遍历
二叉树的结点定义typedef struct BiTNode { TElemType data; BiTNode *lchild,*rchild; //左右孩子指针}BiTNode,*BiTree; 二叉树的创建:根据字符数组创建字母ABC等代表结点,#代表空子树也是用递归实现bool CreateBiTree(BiTree &T,char *s,int &po原创 2011-12-03 23:15:47 · 2889 阅读 · 1 评论 -
数据结构:队列的实现
typedef struct QNode{ int data; QNode *next;}QNode,*QueuePtr;class Queue{ public: QueuePtr front; QueuePtr rear; int count; Queue(); ~Qu原创 2011-10-31 21:03:40 · 982 阅读 · 1 评论 -
菜鸟的高手情结——数据结构之走迷宫.数据结构习题哦
这几天,我睡不着,课也不想上。就是因为数据结构的作业,一道迷宫问题。只要是上过数据结构的一订会遇到这道题。我原以为这么经典的题目网上一定会有完美的答案。搜了好久也没见完美。有是有人谈,但都只给一大段代码,看不懂啊!为了证明我不是弱智我翘了选修课终于搞定它。水平有限,这只是初步代码。废话少说直接代码: //main.cpp#include#include#include "s原创 2011-10-24 21:39:19 · 1593 阅读 · 0 评论 -
数据结构栈的应用之括号匹配
括号匹配,多项式的运算,走迷宫,是数据结构讲栈的经典题目,因为括号匹配是栈的应用最简单的题目了。所以我就拿它开刷了。 所谓括号匹配就是接受用户输入的一个字符串,判断该字符串中的括号是否正确。比如正括号比反括号多,或者括号出现的顺序不对等等。 算法分析:比如【()】,先从第一个括号【开始,把它保存在栈中,检查下一个字符看它是不是】,下一个字符是(原创 2011-10-23 12:54:08 · 2205 阅读 · 0 评论 -
重刷数据结构,小题大做,——难道非要头结点吗?
按照书上的说法,引入头结点有一下两个优点:由于开始结点的位置被存放在头结点的指针域中,所以在链表的第一个位置上的操作和在表的其他位置上的操作一致,无须进行特殊处理。无论链表是否为空,其头指针是指向头结点的非空指针,因此空表和非空表的处理也就一致了。你可能会疑惑:难道非得要头指针吗?难道没有头结点,插入、删除、空表的处理就不一致了吗?(貌似有一些同学和我有同样的疑问)原创 2014-08-16 21:28:42 · 1502 阅读 · 1 评论