c语言算法
*匠心独具*
目前学生一枚,致力成为一名程序猿。会在博客中分享自己的所学,希望大家支持。
展开
-
括号匹配(栈)
日常编程中,我们都会用到编译器,但如果我们编写的代码在出现了问题,例如左右括号没有完全的匹配的时候,程序就无法通过运行,这个时候编译器就会报错,那么我们探究一下编译器是如何检查出这个错误的。首先我们知道一个程序就像是一个字符串(忽略空格),我们的括号匹配问题就应在这个字符串中进行处理和查找。但是我们知道相邻的括号是一组,而不是最里面和最外面的随意匹配,因此在多个括号组中,往往最开始的括号是最后一个匹配的,这非常符合栈的先进后出原则,因此我们可以使用一个栈来保存这些括号。这个时候我们的编译器挨个去扫描字原创 2022-02-23 22:12:02 · 930 阅读 · 0 评论 -
动态数组实现
在c++中,vector是一个十分有用的容器。作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。但是万物基于c/c++,那么我们手动尝试着去做一个这样的动态数组容器。在这里我们用到了结构体,以及动态内存,来实现动态内存应有的插入删除初始化,以及查找功能。代码如下:#include<iostream>#include原创 2022-02-07 18:58:29 · 860 阅读 · 0 评论 -
迷宫c++利用栈空间回溯法
利用栈空间储存迷宫路径可以有效保证回溯上一位置时的方便和可靠性。算法最应注意的是应该在路径入栈后,设置该坐标为0(不可走),防止不停重复入栈和出栈,形成死循环。#include<iostream>using namespace std;typedef struct stack{ int arr[16][2];//使用二维数组保存路径的位置 int p;}stackt...原创 2020-02-24 19:11:23 · 283 阅读 · 0 评论 -
汉诺塔问题
相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。分析:对于这样一个问题,任何人都不...原创 2020-02-24 14:18:41 · 132 阅读 · 0 评论 -
acm比赛术语
ACM/ICPC 术语:ICPC (International Collegiate Programming Contest) 国际大学生程序设计竞赛AC (Accepted) 程序通过WA (Wrong Answer) 错误的答案 (读做“哇”)PE (Presentation Error) 输出格式错误RE (Runtime Error) 程序执行错误 (常见于数组溢出、递归层数太多...转载 2020-02-23 13:45:32 · 753 阅读 · 0 评论 -
1+1/2+2/3+.....的c代码
#include<stdio.h>int main(void){float f,q,p,value,sum=1;p=1;q=1;int x;scanf("%d",&x);for(int i=2;i<=x;i++)//从第二次开始{f=p; //交换变量,用来保存数值p=q; //上一个的分母变分子q=f+q;//新的分母,是上一次的分子与分母相加。...原创 2019-09-10 22:08:40 · 2351 阅读 · 0 评论