数据结构和算法
文章平均质量分 67
数据结构和算法
imyLove7
这个作者很懒,什么都没留下…
展开
-
leetcode 52. N皇后 II
leetcode 52. N皇后 IIN皇后问题,简单来说就是:同一行,同一列,同一斜线上,只能存在一个皇后。搜索策略:每行只放一个皇后,搜索第i个皇后可以放在第i行的第几列(需要枚举每一列),放好第i个皇后,才去放第i+1个皇后,直到放完所有皇后。定义:`f[i]`代表第i个皇后放置在第i行第`f[i]`列上每行只放一个皇后,因此不必判断行冲突,有以下约束需要满足:1.不能同列,也就是`f[i]!=f[j]`...原创 2022-04-15 09:39:03 · 499 阅读 · 0 评论 -
拓扑排序与有向无环图
基本概念:一个无环的有向图称为有向无环图(Directed Acycline Graph,DAG)。有向无环图是描述一个工程、计划、生产、系统等流程的有效工具。一个大工程可分为 若干个子工程(活动),活动之间通常有一定的约束,例如先做什么活动、后做什么活动。用顶点表示活动,用弧表示活动之间的优先关系的有向图,称为顶点表示活动的网 (Activity On Vertex Network),简称 AOV 网。拓扑排序是指将 AOV 网中的顶点排成一个线性序列,该序列必须满足:若从顶点 i 到顶点..原创 2022-04-13 21:20:45 · 1370 阅读 · 0 评论 -
C语言入门之排序算法
选择排序算法思想:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。算法实现void swap(int *a,int *b) //交换两个数{ int temp = *a; *a = *b; *b = temp;}void se...原创 2020-04-22 16:02:05 · 197 阅读 · 0 评论 -
二叉树的相关题目
目录1、求二叉树的遍历顺序为自下至上,自右至左的层序遍历序列2、判断二叉树是否为完全二叉树3、统计二叉树中双分支结点的个数4、求先序遍历序列中第k个结点的值5、求二叉树的高度6、判断二叉树是否为二叉排序树7、求出二叉排序树中结点所在的层数1、求二叉树的遍历顺序为自下至上,自右至左的层序遍历序列算法思想:使用层序遍历。二叉树正常的层序遍历顺序是自上至下,自左向右的...原创 2019-12-01 11:31:39 · 419 阅读 · 2 评论 -
二叉树遍历之非递归前、中、后、层序遍历
二叉树四种顺序遍历的非递归程序。void preOrder2(BiTree bt){ //非递归前序遍历 InitStack(s); BiTree p = bt; push(s,p); while(!IsEmpty(s)) { pop(s,p); visit(p); if(p->rchild)...原创 2019-12-01 10:51:43 · 353 阅读 · 0 评论 -
线性顺序表
#include<iostream>using namespace std;class Coordinate{ friend ostream &operator<<(ostream &out,Coordinate &coor);public: Coordinate(int x=0,int y=0); void pri...原创 2017-10-14 08:23:46 · 322 阅读 · 0 评论 -
链式线性表
#includeusing namespace std;class Node{public://数据域加指针域,public下面方便赋值 int date; Node *next;//指向下一个结点 void printNode();};void Node::printNode(){ cout<<date<<endl;}class List{p原创 2017-12-12 19:53:11 · 389 阅读 · 0 评论 -
简单二叉树
//定义头部#include using namespace std;struct BiTNode{ char data; struct BiTNode *lchild, *rchild;//左右孩子};BiTNode *T;void CreateBiTree(BiTNode* &T);void Inorder(BiTNode* &T);void PreOrder原创 2017-12-12 20:04:09 · 325 阅读 · 0 评论 -
链队
#include using namespace std;#define MAXSIZE 100;typedef struct QNode{ int data; struct QNode *next;}QNode,*QueuePtr;typedef struct{ QueuePtr front; QueuePtr rear;}LinkQueue;原创 2017-11-25 09:35:40 · 336 阅读 · 0 评论 -
图
图的邻接表存储结构,深度优先、广度优先两种搜索方式。原创 2017-11-25 13:54:47 · 322 阅读 · 0 评论 -
快速排序
#includeusing namespace std;class List{public: List(int size);//创建 ~List();//销毁 void ClearList();//清空线性表 bool ListEmpty();//判断是否为空表 int ListLenght();//求线性表的长度 int LocateEle原创 2017-11-26 18:45:33 · 271 阅读 · 0 评论 -
直接插入排序
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。原创 2017-11-26 20:24:08 · 246 阅读 · 0 评论 -
学生成绩管理系统
#include#includeusing namespace std;void menuChange();class stu{ friend ostream&operator<<(ostream &out,stu &stu);//全局函数public: string Name; string Id; int Chinese; int Match原创 2017-12-14 20:59:36 · 690 阅读 · 0 评论 -
课程设计之学生成绩管理系统
#include#include#include#define Max_Length 100using namespace std;void menuChange();class stu{ friend ostream&operator<<(ostream &out,stu &stu);//全局函数public: string Name; string Id原创 2018-01-06 20:02:57 · 511 阅读 · 0 评论 -
栈
#include using namespace std;#define MAXSIZE 100;class MyStack{public: MyStack(int size); ~MyStack(); bool stackEmpty(); bool stackFull(); void clearStack(); int stackLen翻译 2017-10-14 08:19:26 · 221 阅读 · 0 评论