数据结构与算法
nefu_zc
这个作者很懒,什么都没留下…
展开
-
线索二叉树
下面代码为中序线索二叉树 #include <iostream> using namespace std; #include <stdio.h> #include <stdlib.h> typedef char TElemType; typedef struct BiThrNode { TElemType data; struct BiThrNode *lchild,*rchild; int LTag,RTag; }BiThrNode,*BiTh原创 2020-11-17 16:58:53 · 115 阅读 · 0 评论 -
层序遍历二叉树
用队列实现的层序遍历二叉树,就是宽搜bfs #include <bits/stdc++.h> using namespace std; typedef char TElemType; typedef struct BiTNode { TElemType data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; void CreatTree(BiTree &T) { char ch; scanf("原创 2020-11-17 16:52:58 · 114 阅读 · 0 评论 -
非递归中序遍历二叉树
用栈实现 #include <bits/stdc++.h> using namespace std; typedef char ElemType; typedef struct node { ElemType data; struct node *lchild,*rchild; }BiTNode,*BiTree; stack<BiTree>s; void Create(BiTree &T) { char ch; cin>>ch;原创 2020-11-17 16:49:19 · 362 阅读 · 0 评论 -
栈与队列(数据结构)
1.顺序栈 #include <iostream> using namespace std; #define MaxSize 50 typedef int ElemType; typedef struct { ElemType data[MaxSize]; int top; }SqStack; void InitStack(SqStack &S)//要改变栈内的元素或者,top指针 { S.top=-1; } bool Empty(SqStack S) {原创 2020-10-27 09:17:48 · 144 阅读 · 0 评论 -
线段树segment——tree
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+10; //sum为原数组,add为懒标记 ll n,m,x,y,k,opt,a[N],add[4*N],sum[4*N];//add[i]表示第i个区间内每个数要加的值,也就是懒标记(延迟标记) void build(ll i,ll l,ll r)//建树,i为线段树的下标,lr为原数组下标 { if(l==r)原创 2020-09-08 15:49:47 · 159 阅读 · 0 评论 -
个人理解的kmp算法
kmp还是挺难上手的,看书加看博客,看了有五六篇才理解,看了大概四个小时。。 #include <iostream> #include <string.h> #include <stdio.h> using namespace std; //next数组本质是模式串中的前缀和后缀的相等数 int next[555]; //得到next数组的过程也是模式串自身匹配的过程 void GetNext(char *p) { int plen=strlen(p);原创 2020-07-21 01:23:21 · 107 阅读 · 0 评论 -
数据结构与算法-二叉树
----------------------------学习数据结构第三天------------------------------- 前言:今天学习一下二叉树,以前没学的时候就感觉这个数据结构是个神奇的结构,一生二,二生四。。。对这个数据结构总是抱有莫大的好奇,今天终于学到了,感觉这个数据结构是非常奇妙的。 今天学习的内容是:1.二叉树的定义与创建 2.前序遍历 3.中序遍历 4.后序遍历 总结: 1.二叉树的创建要用二级指针,我对这个为啥要用二级指针的原因也是一知半解,先暂时记住,以后用多了,就会慢原创 2020-07-19 15:52:10 · 151 阅读 · 0 评论 -
day2-栈
学习数据结构第二天,继续冲! 栈的操作分为:栈的 创建,入栈,出栈,栈的输出。 栈定义时,为一个结构体,定义一个栈顶,一个栈底,但是栈底基本不动,还要定义一个存储数据的线性表。 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char data[100]; int top; int bottom; }stack; //栈的创建,就是分配空间加原创 2020-07-14 23:24:15 · 65 阅读 · 0 评论 -
day1-双向链表
前言-学习数据结构与算法第一天 今天是2020年7月13日,今天开始学习数据结构与算法这门课程,之前好多立下的学习计划貌似都荒废了,这次可千万不能荒废啊,拜托了! 今天先学习一个简单的,双向链表,有单链表的基础,这双向链表也是学的比较快,基本原理搞懂了,代码跟单链表一样一样的。 #include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *next,*pre;原创 2020-07-13 23:29:42 · 145 阅读 · 0 评论