![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
leimingzeOuO
已退役
展开
-
力扣第 310 场周赛
【代码】力扣第 310 场周赛。原创 2022-09-12 00:37:17 · 160 阅读 · 0 评论 -
dijkstra单源最短路课设代码详解
【代码】dijkstra单源最短路课设代码详解。原创 2022-09-05 20:16:29 · 140 阅读 · 0 评论 -
PTA程序设计天梯赛 L2题解报告(40/40)
L2原创 2022-03-17 23:28:57 · 2476 阅读 · 0 评论 -
PTA甲级 《图》专题训练(17/17)
目录1. 紧急情况2. 旅行计划3. 团伙头目4. 条条大路通罗马5. 在线地图6. 哈密顿回路7. 欧拉路径8. 地铁地图9. 顶点覆盖10. 第一次接触11. 最大集团12. 拓扑顺序13. 旅行商问题14. 顶点着色15. 公共自行车管理16. 加油站17. 微博转发1. 紧急情况题目链接:紧急情况dijkstra多权值模板题#include <bits/stdc++.h>using namespace std;const int N = 510;int n, m, s, d原创 2022-03-12 19:21:42 · 401 阅读 · 0 评论 -
PAT甲级 《树》专题练习(25/25)
目录1. 数叶子结点2. 树的遍历3. 最深的根4. 判断二叉搜索树5. 完全二叉搜索树6. 再次树遍历7. 构建二叉搜索树8. 反转二叉树9. 完全二叉树1. 数叶子结点题目链接:数叶子结点#include <bits/stdc++.h>using namespace std;const int N = 110;const int M = N * N;int h[N], e[M], ne[M], idx;int cnt[N], height;int n, m;void ad原创 2022-03-10 10:52:16 · 1882 阅读 · 0 评论 -
【PAT甲级】AVL树的旋转插入操作
写在开头:什么是平衡二叉树:知乎:什么是AVL树.1552. AVL树的根题目链接:链接: link.#include <bits/stdc++.h>using namespace std;typedef struct node{ int data; node* left, * right; int hight;}node, * tree;int n;int get_hight(tree T){ if (!T)return 0; else return T-&原创 2022-03-08 11:05:02 · 743 阅读 · 0 评论 -
2021-10-01
1129. 热浪德克萨斯纯朴的民众们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是它们并不是很擅长生产富含奶油的乳制品。农夫John此时身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。John已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点一共有 T 个城镇,为了方便标号为 1 到 T。除了起点和终点外的每个城镇都由 双向道路 连向至少两个其它的城镇。每条道路有一个通过费用(包括油费,过路费等等)。原创 2021-10-02 09:32:51 · 99 阅读 · 0 评论 -
双向广搜,Astar.
190. 字串变换已知有两个字串 A, B 及一组字串变换的规则(至多 6 个规则):A1→B1A2→B2…规则的含义为:在 A 中的子串 A1 可以变换为 B1、A2 可以变换为 B2…。例如:A=abcd B=xyz变换规则为:abc → xu ud → y y → yz则此时,A 可以经过一系列的变换变为 B,其变换的过程为:abcd → xud → xy → xyz共进行了三次变换,使得 A 变换为 B。输入格式输入格式如下:A BA1 B1A2 B2… …第一原创 2021-09-30 00:10:31 · 164 阅读 · 0 评论 -
【c++/java】LeetCode刷题笔记(2)
2. 两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.输入:l1 = [0], l2 = [0]输出:[0]输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,原创 2021-09-17 00:13:02 · 145 阅读 · 0 评论 -
Deque (25 分) Data Structures and Algorithms (English)
6-3 Deque (25 分)A “deque” is a data structure consisting of a list of items, on which the following operations are possible:Push(X,D): Insert item X on the front end of deque D.Pop(D): Remove the front item from deque D and return it.Inject(X,D): Inse原创 2021-09-06 23:41:08 · 139 阅读 · 0 评论 -
2021-07-25
7-28 搜索树判断 (25 分)#include <bits/stdc++.h>using namespace std;const int N=1010;typedef struct node *BinTree;int n,s,t,k;int a[N],b[N],c[N],d[N];struct node{ int data; BinTree left,right;};BinTree CreatTree(BinTree BST,int x){ i原创 2021-07-25 20:00:53 · 111 阅读 · 0 评论 -
2021-07-22
7-21 求前缀表达式的值 (25 分)#include <bits/stdc++.h>using namespace std;stack<double>st;double yunsuan(double a,double b,string c){ if(c=="+")return a+b; else if(c=="-")return a-b; else if(c=="*")return a*b; else if(c=="/")return原创 2021-07-22 18:42:33 · 128 阅读 · 0 评论 -
2021-07-11笔记
排列数字链接: 题目链接.给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数 n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤7输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1#include <bits/stdc++.h>using namespace std;const int N=10;int path[N原创 2021-07-09 23:02:08 · 199 阅读 · 0 评论 -
堆排序(小顶堆)
原题链接 :838.堆排序输入一个长度为 n 的整数数列,从小到大输出前 m 小的数。输入格式第一行包含整数 n 和 m。第二行包含 n 个整数,表示整数数列。输出格式共一行,包含 m 个整数,表示整数数列中前 m 小的数。数据范围1≤m≤n≤105,1≤数列中元素≤109输入样例:5 34 5 1 3 2输出样例:1 2 3主要思路–by yxc#include <bits/stdc++.h>using namespace std;const int N原创 2021-07-04 23:26:18 · 394 阅读 · 2 评论 -
Trie(字典树)
835. Trie字符串统计参考 用数组来模拟Trie树的具体分析.维护一个字符串集合,支持两种操作:I x 向集合中插入一个字符串 x;Q x 询问一个字符串在集合中出现了多少次。共有 N 个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。输入格式第一行包含整数 N,表示操作数。接下来 N 行,每行包含一个操作指令,指令为 I x 或 Q x 中的一种。输出格式对于每个询问指令 Q x,都要输出一个整数作为结果,表示 x 在集合中出现的次数。每个结果占一行。数原创 2021-05-30 20:49:45 · 91 阅读 · 0 评论 -
二叉树的非递归算法(四种遍历)
/*NSTree.h*/#ifndef NSTREE_H_INCLUDED#define NSTREE_H_INCLUDEDtypedef char elemType;typedef struct BiTNode{ elemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;void visit(elemType x);BiTree createBiTree();void PreOrderTraverseNo原创 2021-05-21 00:17:16 · 252 阅读 · 0 评论 -
逆序对个数(归并排序)
题目链接: 点击进入.#include <bits/stdc++.h>using namespace std;const int N=100010;int arr[N],tmp[N];void merge_sort(int q[],int l,int r){ if(l>=r)return; int mid=l+r>>1; merge_sort(q,l,mid),merge_sort(q,mid+1,r); int k=0,i=l,j=原创 2021-05-16 19:51:07 · 318 阅读 · 0 评论 -
数组模拟单链表的逆转
原题链接: 单链表.实现一个单链表,链表初始为空,支持三种操作:向链表头插入一个数;删除第 k 个插入的数后面的数;在第 k 个插入的数后插入一个数。现在要对该链表进行 M 次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。输入格式第一行包含整数 M,表示操作次数。接下来 M 行,每行包含一个原创 2021-05-16 15:45:44 · 127 阅读 · 0 评论 -
非递归先序遍历二叉树
void PreOrderTraverseNonRec(BiTree T)//先序非递归遍历二叉树{ Stack *S=InitStack(); BiTNode *p; push(S,T); while(!isEmpty(S)) { p=GetTop(S); while(P!=NULL) { visit(p->data); push(S,p->lchild)原创 2021-05-13 01:00:58 · 329 阅读 · 0 评论 -
2021-05-10
7-3 树的同构 (25 分)#include <bits/stdc++.h>using namespace std;struct trees{ char a; char b; char c;};int main(){ int i,j,n1,n2; cin>>n1; vector<trees>v1(n1); for(i=0;i<n1;i++) { cin>>原创 2021-05-11 00:41:15 · 144 阅读 · 0 评论 -
《数据结构》实验五----顺序队列的基础操作
/*SeqQueue.c*/#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include "SeqQueue.h"void InitQueue(SeqQueue *SQ){ SQ->front=SQ->rear=0;//队头和队尾指针同时指向0}int IsEmpty(SeqQueue *SQ)//判断队列是否为空{ if(SQ->front==SQ-&原创 2021-05-06 20:46:11 · 440 阅读 · 0 评论 -
数据结构与算法题目集(中文)09-11
6-9 二叉树的遍历 (25 分)void InorderTraversal( BinTree BT ){ if(BT) { InorderTraversal( BT->Left ); printf(" %c",BT->Data); InorderTraversal( BT->Right ); }}void PreorderTraversal( BinTree BT ){ if(BT)原创 2021-05-04 19:04:02 · 169 阅读 · 0 评论 -
7-26 玩转二叉树
#include <stdio.h>#include <malloc.h>#include <stdlib.h>int pre[1001],in[1001];typedef int ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;BiTree CreatBiTree(int *pre,int *i.原创 2021-05-04 01:55:48 · 279 阅读 · 0 评论 -
二叉树的四种遍历(前序中序后序层次遍历)
void InorderTraversal( BinTree BT ){ if(BT) { InorderTraversal( BT->Left ); printf("%c",BT->Data); InorderTraversal( BT->Right ); }}void PreorderTraversal( BinTree BT ){ if(BT) { printf("%c",原创 2021-05-03 23:25:19 · 123 阅读 · 0 评论 -
数据结构与算法题目集(中文)05-08
6-5 链式表操作集 (20 分)本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X );List Insert( List L, ElementType X, Position P );List Delete( List L, Position P );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data;原创 2021-05-03 18:09:02 · 173 阅读 · 1 评论 -
7-25 还原二叉树
还原二叉树#include <bits/stdc++.h>using namespace std;#define MAXN 51typedef char ElemType;typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;//左孩子右孩子}BiTNode,*BiTree;BiTree CreatBiTree(char *pre,char *in,int len){原创 2021-05-02 22:44:14 · 104 阅读 · 0 评论 -
二叉树的基本操作(递归算法)
/*BSTree.h*/typedef char elemType;typedef struct BiTNode{ elemType data; struct BiTNode *lchild, *rchild;}BiTNode,*BiTree;BiTree creatBiTree();//二叉树创建void PreOrderTraverse(BiTree T);//先序遍历void InOrderTraverse(BiTree T);//中序遍历void PostOrderT原创 2021-05-02 18:03:38 · 269 阅读 · 0 评论 -
数据结构与算法题目集(中文)01-04
6-1 单链表逆转 (20 分)题目链接List Reverse(List L){ PtrToNode p; PtrToNode q; PtrToNode r; if(L==NULL) return L; p=L; q=L->Next; L->Next=NULL; while(q) { r=q->Next; q->Next=p; p=q;原创 2021-05-02 00:14:13 · 166 阅读 · 0 评论 -
《数据结构》实验四----链栈的基础操作
/*LinkStack.c*/#include <stdio.h>#include <stdlib.h>#include "LinkStack.h"#include <windows.h>void InitStack(LinkStack* top)//栈链初始化{ if((*top=(LinkStack)malloc(sizeof(LStackNode)))==NULL) exit(0); (*top)->next=NUL原创 2021-04-27 16:57:31 · 252 阅读 · 0 评论 -
《数据结构》实验三----顺序栈的基本操作
#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100typedef int DataType;typedef struct SeqStack{ DataType stack[MAXSIZE]; int top;}SeqStack;void InitStack(SeqStack *s)//初始化栈{ s->top=-1;}int StackEmpty(SeqStack s)//原创 2021-04-25 21:16:03 · 623 阅读 · 0 评论 -
2021-04-25(开新坑)
7-1 最大子列和问题 (20 分)#include <bits/stdc++.h>using namespace std;int main(){ int K; cin>>K; int i,j; int num[100001]; for(i=0;i<K;i++) { cin>>num[i]; } int thissum=0; int maxsum=0; for原创 2021-04-25 21:14:45 · 305 阅读 · 0 评论 -
2021-04-20
R6-1 括号匹配判断 (30 分)输入样例1:{[2*(3+2)-7]}/4输出样例1:{[2*(3+2)-7]}/4 match输入样例2:{[()]}输出样例2:{[()]} matchint match (char exp[]){ int i,k=0,j=0,flag=0; char s[20]; char a[20]; for(i=0;i<strlen(exp);i++) { switch(exp[i])原创 2021-04-20 01:02:25 · 105 阅读 · 0 评论 -
《数据结构》实验报告(二)链表的基础操作
#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef int DataType;typedef struct Node{ DataType Data; struct Node*Next;}Node;typedef struct Node *LinkList;int InitList(LinkList *L) //带有头节点的单链表的初始化{ (*L)原创 2021-04-11 00:01:06 · 933 阅读 · 0 评论 -
2021-04-07
好吧,我承认我到瓶颈了输入样例:7 8 45 6 12 7 -11 3 13 4 16 7 -11 2 11 4 12 3 -13 45 72 37 2输出样例:No problemOKOK but…No way#include <iostream>using namespace std;int main(){ int N, M, K; cin >> N >> M >> K; int map[101][10原创 2021-04-07 23:33:10 · 234 阅读 · 0 评论 -
《数据结构》实验报告(一)顺序表基本操作
#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100 //顺序表的最大长度;int k=0;//全局变量,用于循环;typedef int elemtype;//元素类型;typedef struct{ elemtype data[MAXSIZE];//用数组存储线性表的元素; int length;//顺序表的长度,元素个数;}SqList;void InitList(SqList *L)//初始化顺序表原创 2021-04-04 02:58:00 · 10820 阅读 · 0 评论