算法学习笔记
《算法入门竞赛入门》学习笔记
天赋不够努力来凑
这个作者很懒,什么都没留下…
展开
-
栈的顺序储存结构与操作
一、栈的定义栈是一种只能在一端(栈顶)进行操作的数据结构,具有后进先出的特点。二、栈的顺序储存结构1、储存结构在这里插入代码片原创 2021-09-01 16:27:02 · 628 阅读 · 0 评论 -
循环链表和双向链表
一、循环链表1、特点:从任意一个结点出发,可以访问到全部结点。2、与单链表的区别:单链表最后一个结点指针域的指针指向空,循环链表则是最后一个结点指针域的指针指向头结点,当然如果该链表无头结点,指针就指向第一个结点。下图为带有头结点的循环链表:二、循环链表的操作1、循环链表操作跟单链表操作类似,只是判断循环条件时,单链表是p->next是否为空,而循环链表则是p->next是否为头指针L。2、两循环链表合并...原创 2021-08-13 23:35:08 · 583 阅读 · 0 评论 -
线性表:顺序储存结构
一、定义一段地址连续的储存单元依次储存线性表的数据元素。二、特点1、插入删除时,当在尾部进行,时间复杂度为o(1),其他情况为o(n)2、存取容易,时间复杂度为o(1),故顺序结构又叫随机存取结构三、储存结构表示#define MAXSIZE 20typedef int ElemType;typedef struct{ ElemType data[MAXSIZE];//最大容量为MAXSIZE的数组 int length;//数据长度}SqList;三、其他操作1、原创 2021-08-03 16:55:48 · 115 阅读 · 0 评论 -
线性表:链式储存结构(单链表)
一、定义每个数据元素(结点)分为数据域和指针域,数据域储存本身信息,指针域储存指向后继元素的指针。所以不用把所有元素像顺序结构一样连续储存,只要有指针域,我们就能将数据链接在一起。二、特点...原创 2021-08-03 16:51:15 · 209 阅读 · 0 评论 -
算法学习笔记:C++STL之set(集合)
C++STL中的set与数学中的集合一样,每个元素最多出现一次,自定义类型也可构造set,但必须定义“小于”运算符。set的定义使用set必须要有头文件#include<set>set<string>dict;set<int>dict;安迪的第一个字典(set和stringstream的应用)输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出,单词不区分大小写。#include<iostream>#include<s原创 2021-03-05 17:10:18 · 189 阅读 · 0 评论 -
C++学习笔记:string流
头文件sstream定义了三个类型来支持string对象的IO流。istringstream从string中读取数据ostringstream向string中写入数据stringstream即可从string中读取数据也可写入数据下面有一例题对string流的运用:输入若干行以空格隔开的整数,计算每行整数的和在这里插入代码片...原创 2021-03-05 15:46:11 · 120 阅读 · 0 评论 -
学习笔记:乘法溢出问题
学习笔记:乘法溢出问题1、3n+1问题对于任意大于1的自然数,若n为奇数就将n变为3n+1,否则变为n的一半。当n变为1时,进行了多少次变换?程序一:#include<iostream>#include<cstdio>using namespace std;int main(){ int n; int count=0; cin>>n; while(n>1) { if(n%2==0)原创 2021-01-27 15:45:35 · 1750 阅读 · 0 评论 -
学习笔记:竞赛中的输入输出问题
一、输入一些整数,求出他们的最小值,最大值和平均值样例输入:2 8 3 5 1 7 3 6样例输出:1 8 4.375程序一:#include<iostream>#include<cstdio>using namespace std;int main(){ int x,n=0,min,max,s=0; while(scanf("%d",&x)==1) { if(x<min) min=x;原创 2021-01-28 10:35:43 · 148 阅读 · 0 评论 -
算法竞赛入门学习笔记:数组和字符串
一、逆序输出问题读入一些整数,逆序输出一行#include<iostream>#include<cstdio>using namespace std;#define MAXN 105int a[MAXN];int main(){ int x,n=0; while(scanf("%d",&x)==1) a[n++]=x; for(int i=n-1;i>=1;i--) printf("%d ",a[i原创 2021-02-05 11:17:55 · 76 阅读 · 0 评论