数据结构
文章平均质量分 89
栈、队列、线段树......
zaiyang遇见
我走过山的时候,山不说话;
我路过海的时候,海不说话。
相遇还是不相遇,都是献给岁月的序曲 !
展开
-
两个有序链表序列的合并
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5 -12 4 6 8 10 -1输出样例...原创 2020-03-01 19:57:55 · 368 阅读 · 0 评论 -
前、中、后缀表达式及其转换
前缀表达式又称波兰式,运算符位于操作数之前。举例说明: ( 3 + 4 ) × 5 - 6 对应的前缀表达式:。中缀表达式在计算结果时,往往转成其它表达式来操作(一般转成后缀表达式)。后缀表达式又称逆波兰表达式,运算符位于操作数之后。原创 2023-04-19 18:06:51 · 584 阅读 · 0 评论 -
多栈共享--双端顺序栈为代表
双端栈:特性:栈低位置不变,而栈顶位置动态变化。申请一个共享的一维数组空间s[M],将两个栈的栈低分别放在一维数组的两端,分别是0,M-1。双端顺序栈的存储结构:#define M 100typedef struct{ StackElementType Stack[M];/*Stack[M]为栈区*/ StackElementType top[2];/*top[0]和t...原创 2020-03-05 11:19:11 · 582 阅读 · 0 评论 -
链栈的基本操作
链栈的存储结构:typedef struct node{ StackElementType data; struct node *next;}LinkStackType;typedef LinkStackType *LinkStack;链栈进栈操作:int Push(LinkStack top,StackElementType x) { /* 将数据元素x压入栈t...原创 2020-03-09 10:51:44 · 449 阅读 · 2 评论 -
括号匹配问题--顺序栈
思想:每读入一个括号:(1)若是左括号,则直接入栈,等待相匹配的同类右括号。(2)若是右括号,且与当前栈顶的左括号同类型,则二者匹配,将栈顶的左括号出栈,否则属于不合法的情况。#include<stdio.h>#include<string.h>#define TRUE 1#define FALSE 0#define Stack_Size 50#define...原创 2020-03-09 11:24:49 · 641 阅读 · 0 评论 -
顺序表的建立及遍历
读入n值及n个整数,建立顺序表并遍历输出。输入格式:读入n及n个整数输出格式:输出n个整数,以空格分隔(最后一个数的后面没有空格)。输入样例:4-3 10 20 78输出样例:-3 10 20 78代码:#include <stdio.h>#include <stdlib.h>#include<algorithm>using name...原创 2020-03-01 19:44:06 · 5978 阅读 · 1 评论 -
求二叉树的叶子结点个数
题目描述:以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数。输入格式:输入二叉树的先序序列。提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。输出格式:输出有两行:第一行是二叉树的中序遍历序列;第二行是二叉树的叶子结点个数。输入样例:ABC##DE#G##F###输出样例:CBEGDFA3二叉树的链式存储...原创 2020-04-02 16:00:22 · 27414 阅读 · 9 评论 -
中序线索化二叉树及遍历
中序线索化二叉树及遍历。函数接口定义:void InThreading(BiThrTree p);// 以结点P为根的子树中序线索化void InOrderTraverse_Thr(BiThrTree T);// 中序遍历二叉线索树T的非递归算法,对每个数据元素直接输出裁判测试程序样例:#include<iostream>using namespace std;type...原创 2020-04-02 20:24:21 · 8177 阅读 · 1 评论 -
HDU - 128 确定比赛名次(基于有向无环图(GAD)的排序--拓扑排序)
题目链接:https://vjudge.net/contest/325616#problem/A有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N,进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。In...原创 2019-09-12 17:13:51 · 181 阅读 · 0 评论 -
L2---链表去重(邻接表+结构体模拟)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805072641245184给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出...原创 2020-03-16 19:11:10 · 248 阅读 · 0 评论 -
PTA-银行业务队列简单模拟
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数...原创 2020-03-18 11:40:53 · 1403 阅读 · 0 评论 -
单链表的创建及遍历
读入n值及n个整数,建立单链表并遍历输出。输入格式:读入n及n个整数。输出格式:输出n个整数,以空格分隔(最后一个数的后面没有空格)。输入样例:210 5输出样例:10 5代码:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>...原创 2020-03-01 20:04:37 · 2324 阅读 · 0 评论 -
牛客算法竞赛入门班比赛1 第k小数(快排思想+读入优化)&快排解析
题目链接:https://ac.nowcoder.com/acm/contest/5773/A题目描述给你一个长度为n的序列,求序列中第k小数的多少。输入描述:多组输入,第一行读入一个整数T表示有T组数据。每组数据占两行,第一行为两个整数n,k,表示数列长度和k。第二行为n个用空格隔开的整数。输出描述:对于每组数据,输出它的第k小数是多少。每组数据之间用空格隔开输入25 21 4 2 3 43 33 2 1输出23t≤10,1≤n≤5×106,k≤nt≤10,1≤n原创 2020-06-01 22:02:57 · 832 阅读 · 0 评论 -
顺序栈的基本操作
顺序栈定义:地址连续的存储单元依次存放自栈低到栈顶的数据元素。附设栈顶指针top。top=-1表示空栈。存储结构:#define Stack_Size 50/*设栈中元素个数为50*/typedef struct{ StackElementType elem[Stack_Size];/*存放栈中元素的一维数组*/ int top;/*栈顶元素的下标,top=-1表示空栈...原创 2020-03-05 10:55:51 · 801 阅读 · 0 评论 -
POJ2299 Ultra-QuickSort(归并排序)
题目链接:https://vjudge.net/contest/369436#problem/FIn this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent...原创 2020-04-22 21:57:54 · 128 阅读 · 0 评论 -
图的存储结构与基本术语
基本术语-----------------------------------------------------------------------------------------------------弧头和弧尾<x,y>表示从顶点到顶点y的一条弧,并称x为弧尾或起始点,称y为弧头或终端点---------------------------------------...原创 2020-04-13 20:43:37 · 5459 阅读 · 0 评论