一、迷宫回溯问题 1.问题 一个7*8的数组模拟迷宫,障碍用1表示,通路使用0表示,给定起点(1,1)和终点(6,5),要求给出起点到终点的通路 2.解题思路 首先,我们需要给程序一个寻向的基本策略,我们先假定寻向顺序为“下-右-上-左”,也就是说从起点出发,先往下走,往下走不通就往右.....以此 ...
分类:
编程语言 时间:
2020-06-27 00:16:22
阅读次数:
76
数组模拟队列 代码模板 const int N = 1e6 + 10; int q[N], hh = 0, rr = -1; void push(int x) { q[++rr] = x; } void pop() { ++hh; } void isempty() { return hh <= tt ...
分类:
其他好文 时间:
2020-06-25 16:04:50
阅读次数:
49
数组模拟栈 代码模板 const int N = 1e6 + 10; int st[N], tt = -1; void push(int x) { st[++tt] = x; } void pop() { --tt; } bool isempty() { return tt >= 0; } void ...
分类:
其他好文 时间:
2020-06-25 15:46:10
阅读次数:
50
单链表 两种形式 结构体形式 : 申请新节点太慢 struct List { int data; List *next; } 数组模拟 代码模板 const int N = 1e6 + 10; int e[N], ne[N], head, idx; // 初始化:head存的是头结点下标,用idx分 ...
分类:
其他好文 时间:
2020-06-25 15:24:32
阅读次数:
68
题目链接:http://poj.org/problem?id=2559 典型问题,就是有一个地方要注意,用数组模拟栈的时候要判断栈是否为空才能弹出元素,否则的话,设置一个st[0]=-1,这样矩形高度是0的时候就会自动判断栈空。 代码如下: #include<iostream> #include<c ...
分类:
编程语言 时间:
2020-06-17 10:56:19
阅读次数:
54
数组模拟非循环队列 思路分析 \(front:\) 指向队头元素,\(rear:\) 指向队尾元素的后面一个元素,\(maxSize:\) 队列大小 队列为空:\(rear == front\),队列满:\(rear == maxSize\) 进队列:直接加入到 \(rear\) 的位置,然后 \( ...
分类:
编程语言 时间:
2020-06-15 13:53:07
阅读次数:
59
一、队列的介绍及使用场景 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 示意图:(使用数组模拟队列示意图) 队列的使用场景:银行排队叫号系统 二、单向队列 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如 ...
分类:
编程语言 时间:
2020-06-08 14:56:33
阅读次数:
57
2.5 链表其实也可以用数组模拟 在C或者C++语言中有“指针”的概念。因为这个概念,链表在编程语言中能够非常方便地得以发挥作用,但并不是在所有的编程语言中都有指针这个概念,比如Java,虽然没有“指针”的概念,但是Java有“引用”的概念,类似于指针,可用于完成链表的实现,这在前面已经有所介绍了。 ...
分类:
其他好文 时间:
2020-05-28 01:11:20
阅读次数:
71
寻找重复数 根据题意,数组中的数字都在1~n之间,所以数字的范围是小于数组的范围的,数组的元素可以和数组的索引相联系。 例如:nums[0] = 1 即可以将nums[0]作为索引 通过nums[0] 可以访问到nums[1],以此类推。 如左图所示,环的入口就是重复元素。 那么问题就转化为了如何找 ...
分类:
编程语言 时间:
2020-05-27 01:07:44
阅读次数:
75
用数组模拟栈 // tt表示栈顶 int stk[N], tt = 0; // 向栈顶插入一个数 stk[ ++ tt] = x; // 从栈顶弹出一个数 tt -- ; // 栈顶的值 stk[tt]; // 判断栈是否为空 if (tt > 0) { } 用数组模拟队列 // hh 表示队头,t ...
分类:
编程语言 时间:
2020-05-13 15:17:54
阅读次数:
64