数据结构与算法
主要是数据结构与算法
Z_Coding
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 59 - I. 滑动窗口的最大值
剑指 Offer 59 - I. 滑动窗口的最大值给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:提示:思路:i,j分别代表滑动窗口的左右边界,初始化i=1-k,j=0,当还未形成窗口时,将遍历到的元素加入到双端队列deque,并不断删除队列中比nums[j]小的数,保证队列的单调递减,将nums[j]加入到队列,此时队列的队头元素即为滑动窗口最大值可以将 “未形成窗口” 和 “形成窗口后” 两个阶段拆分到两个循环里实现。代码虽变长,但减少了冗余的判断操作。暴力解法原创 2022-06-02 22:49:17 · 226 阅读 · 2 评论 -
【Java】力扣 - 刷题笔记 - 剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串描述数组切片class Solution { public String reverseLeftWords(String s, int n) { return s.substring(n,s.length())+s.substring(0,n); }}数组遍历拼接class Solution { //列表遍历拼接 public String reverseLeftWords(String s, in原创 2022-05-30 17:09:21 · 133 阅读 · 0 评论 -
【Java】力扣 - 刷题笔记 - 剑指 Offer 58 - I. 翻转单词顺序
剑指 Offer 58 - I. 翻转单词顺序描述输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或原创 2022-05-30 16:16:46 · 148 阅读 · 0 评论 -
【Java】力扣 - 刷题笔记 - 剑指 Offer 57 - II. 和为s的连续正数序列
剑指 Offer 57 - II. 和为s的连续正数序列描述输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5滑动窗口思路:通过题目可得,我们需原创 2022-05-28 19:15:12 · 113 阅读 · 0 评论 -
【Java】力扣 - 刷题笔记 - 剑指 Offer 57. 和为s的两个数字
剑指 Offer 57. 和为s的两个数字描述输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]限制:1 <= nums.length <= 10^51原创 2022-05-28 19:06:56 · 126 阅读 · 0 评论 -
【Java】力扣 - 刷题笔记 - 剑指 Offer 56 - II. 数组中数字出现的次数 II
剑指 Offer 56 - II. 数组中数字出现的次数 II剑指 Offer 56 - II. 数组中数字出现的次数 II描述在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1限制:1 <= nums.length <= 100001 <= nums[i] < 2^31遍历统计原创 2022-05-28 09:29:04 · 239 阅读 · 0 评论 -
【Java】力扣 - 刷题笔记 - 剑指 Offer 56 - I. 数组中数字出现的次数
剑指 Offer 56 - I. 数组中数字出现的次数剑指 Offer 56 - I. 数组中数字出现的次数描述一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]限制:2 <= nums.lengt原创 2022-05-28 09:26:54 · 256 阅读 · 0 评论 -
【Java】力扣 - 刷题笔记 - 35
【Java】力扣 - 刷题笔记 - 35描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1代码代码一暴力破解法: 时间复杂度:O(n) 空间复杂度:O(1)class Solution {原创 2021-11-09 17:12:48 · 143 阅读 · 0 评论 -
【Java】力扣 - 刷题笔记 - 704
【Java】力扣 - 刷题笔记 - 1828描述给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums原创 2021-11-09 16:44:04 · 307 阅读 · 0 评论 -
【Java】力扣 - 刷题笔记 - 1828
【Java】力扣 - 刷题笔记 - 1828描述给你一个数组 points ,其中 points[i] = [xi, yi] ,表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。同时给你一个数组 queries ,其中 queries[j] = [xj, yj, rj] ,表示一个圆心在 (xj, yj) 且半径为 rj 的圆。对于每一个查询 queries[j] ,计算在第 j 个圆 内 点的数目。如果一个点在圆的 边界上 ,我们同样认为它在圆 内 。请你返回一个数组 answe原创 2021-11-04 08:46:52 · 199 阅读 · 0 评论 -
【蓝桥杯】ALGO-324 求数列的项
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 有一个数列,它的第一项是1,第二项是2,第三项是第一项与第二项的和,后面的项依次类推,即F(1)=1,F(2)=2,F(n)=F(n-1)+F(n-2)(n≥3,n∈N*) 输入格式 无 输出格式 输出20行,每行一个数值,表示数列第几项的值。(注意不要输出多余的字符) 提交代码#include <iostream>using namespace std;int f(int x) { if原创 2021-03-16 18:53:56 · 81 阅读 · 0 评论 -
【蓝桥杯】ALGO-329 与1连通的点的个数
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 没有问题描述。 输入格式 输入的第一行包含两个整数n, m n代表图中的点的个数,m代表边的个数 接下来m行,每行2个正整数,表示图中连通的两点。 输出格式 输出1个数,与1连通的点的个数。 样例输入6 31 22 33 4样例输出4数据规模和约定 n<=10000,m<=100000。 提交代码#include <iostream>using na原创 2021-03-16 18:48:48 · 207 阅读 · 0 评论 -
【蓝桥杯】ALGO-230 RP大冒险
资源限制时间限制:200ms 内存限制:64.0MB问题描述 请尽情使用各种各样的函数来测试你的RP吧~~~ 输入格式 一个数N表示测点编号。 输出格式 一个0~9的数。 样例输入0样例输出X{当且仅当输出仅有一个数X且X为0~9的数时你的得分不为零,此时你的得分为系统根据你的输出而计算出的你本次的RP。}数据规模和约定 测点编号为1~10,且stdans随机。 究竟使用怎样的函数才能获得较高的RP呢?指数函数?幂函数?斐波那契数?圆周曲线的导数函数?原创 2021-03-12 13:31:12 · 500 阅读 · 0 评论 -
【蓝桥杯】ALGO-195 1的个数
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 输入格式 一个正整数n 输出格式 一个整数,表示1出现的资料 样例输入15样例输出8数据规模和约定 n不超过30000 提交代码#include <iostream>using namespace std;int num_1(int n原创 2021-03-08 22:45:50 · 56 阅读 · 0 评论 -
【蓝桥杯】 ALGO-201 大等于n的最小完全平方数
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 输出大等于n的最小的完全平方数。 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数 Tips:注意数据范围 输入格式 一个整数n 输出格式 大等于n的最小的完全平方数 样例输入71711样例输出71824数据规模和约定 n是32位有符号整数 提交代码#include <iostream>#include <math.h>using name原创 2021-03-07 22:04:31 · 71 阅读 · 0 评论 -
【蓝桥杯】 ALGO-221 数据交换
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 编写一个程序,输入两个整数,分别存放在变量x和y当中,然后使用自己定义的函数swap来交换这两个变量的值。 输入格式:输入只有一行,包括两个整数。 输出格式:输出只有一行,也是两个整数,即交换以后的结果。 要求:主函数负责数据的输入与输出,但不能直接交换这两个变量的值,必须通过调用单独定义的函数swap来完成,而swap函数只负责交换变量的值,不能输出交换后的结果。输入输出样例样例输入4 7样例输出7 4提交代原创 2021-02-03 20:34:37 · 76 阅读 · 0 评论 -
【蓝桥杯】 ALGO-220 加法运算
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 你的表妹正在学习整数的加法,请编写一个程序来帮助她学习。该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来。要求:在主函数中不能使用scanf等函数直接输入这两个整数,而必须通过调用GetTwoInts函数来完成,在GetTwoInts函数中可以使用scanf函数。另外,由于该函数必须同时返回两个整数,因此不能采用函数返回值的方式,而必须采用指针的方法来实现。原创 2021-02-01 20:54:36 · 92 阅读 · 0 评论 -
【蓝桥杯】 ALGO-84 大小写转换
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。 输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。 输出格式:输出经过转换后的字符串。输入输出样例样例输入AeDb样例输出aEdB提交代码#include <iostream>using name原创 2021-01-31 22:15:25 · 77 阅读 · 0 评论 -
【蓝桥杯】 ALGO-233 字符串合并
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 输入两个字符串,将其合并为一个字符串后输出。输入格式 输入两个字符串输出格式 输出合并后的字符串样例输入一个满足题目要求的输入范例。HelloWorld样例输出HelloWorld数据规模和约定 输入的字符串长度0<n<100提交代码#include <iostream>using namespace std;int main(){ string s1, s2; ci原创 2021-01-30 20:37:06 · 93 阅读 · 0 评论 -
【蓝桥杯】 BASIC-16 分解质因数
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 求出区间[a,b]中所有整数的质因数分解。输入格式 输入两个整数a,b。输出格式 每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)样例输入3 10样例输出3=34=225=56=237=78=2229=3310=25提示 先筛出所有素数,然后再分解。数据规模和约定 2<=a<=b<=10000提交代码原创 2021-01-29 20:31:11 · 120 阅读 · 0 评论 -
【蓝桥杯】 PREV-39 日期问题
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期原创 2021-01-27 20:27:04 · 104 阅读 · 0 评论 -
【蓝桥杯】 PREV-6 翻硬币(贪心)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求:输入格式两行等长的字符串,分别表示初原创 2021-01-26 19:28:46 · 82 阅读 · 0 评论 -
【蓝桥杯】 PREV-3 带分数(搜索,全排列)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N<1000*1000)输出格式程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:不要求输出每个表示,只统计有多少表原创 2021-01-25 19:23:12 · 128 阅读 · 0 评论 -
【蓝桥杯】PREV-53 分考场(DFS+回溯)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。输入格式 第一行,一个整数n(1<n<100),表示参加考试的人数。 第二行,一个整数m,表示接下来有m行数据 以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第b个人认识。输出格式 一行一个整数,表示最少分几个考场。样例输入5原创 2021-01-25 10:20:24 · 131 阅读 · 0 评论 -
【蓝桥杯】 PREV-54 合根植物
资源限制时间限制:2.0s 内存限制:256.0MB问题描述 w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入格式 第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。 接下来一行,一个整数k,表示下面还有原创 2021-01-23 18:45:57 · 97 阅读 · 0 评论 -
【蓝桥杯】 PREV-55 小计算器
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 模拟程序型计算器,依次输入指令,可能包含的指令有1. 数字:‘NUM X’,X为一个只包含大写字母和数字的字符串,表示一个当前进制的数 2. 运算指令:‘ADD’,‘SUB’,‘MUL’,‘DIV’,‘MOD’,分别表示加减乘,除法取商,除法取余 3. 进制转换指令:‘CHANGE K’,将当前进制转换为K进制(2≤K≤36) 4. 输出指令:‘EQUAL’,以当前进制输出结果 5. 重置指令:‘CLEAR’,清除当原创 2021-01-22 20:13:00 · 101 阅读 · 0 评论 -
【蓝桥杯】BASIC-15 字符串对比
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等。比如 Beijing 和 Hebei 2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing 3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIj原创 2021-01-21 17:32:54 · 64 阅读 · 0 评论 -
【蓝桥杯】 BASIC-14 时间转换
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间。<H>表示时间,<M>表示分钟,而<S>表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。输入格式 输入只有一行,是一个整数t(0<=t<=86399)。输出格式 输出只有一行,是以“<原创 2021-01-21 16:30:36 · 112 阅读 · 0 评论 -
算法
118. 杨辉三角给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]题解:class Solution {public: vector<vector<int>> generate(int numRows) { vector<原创 2020-12-06 22:44:04 · 80 阅读 · 0 评论 -
【蓝桥杯】 ALGO-246 猴子吃包子
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同;肉包每秒钟吃x个;韭菜包每秒钟吃y个;没有馅的包子每秒钟吃z个;现在有x1个肉包,y1个韭菜包,z1个没有馅的包子;问:猴子吃完这些包子要多久?结果保留p位小数。 输入格式 输入1行,包含7个整数,分别表示吃不同包子的速度和不同包子的个数和保留的位数。 输出格式 输出一行,包含1个实数,表示吃完所有包子的时间。 样例输入4原创 2020-12-26 10:30:32 · 90 阅读 · 0 评论 -
【蓝桥杯】 BASIC-19 完美的代价(贪心算法)
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : madma 第三次交换 ma : madam (回文!完美!) 输入格式 第一行是一个整数N,表示接下来的字符串的长度(N原创 2020-12-26 10:14:25 · 144 阅读 · 0 评论 -
蓝桥杯题目测试
基础练习 十六进制转八进制问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。样例输入 2 39 123ABC样例输出 71原创 2020-12-15 20:34:13 · 886 阅读 · 0 评论 -
数据结构复习
第1章 绪论第2章 线性表基本概念线性表的基本概念,如:前驱、后继、表长、空表等。线性表中包含数据元素的个数称为线性表的长度长度为0的表称为空表,空表不包含任何数据元素线性表的结构特点,主要是指:除第一及最后一个元素外,每个结点都只有一个前驱和只有一个后继。顺序存储结构基本算法线性表的顺序存储、特点及其操作:顺序表的插入、删除及其简单运用算法。插入三步法:①判断是否表满以及插入合法性②迭代移动元素,a[i]=a[i-1]时停止循环③指定元素插入,表长增加注: 注意观察数组下标是不是从1开原创 2020-12-10 19:46:10 · 363 阅读 · 1 评论 -
线性表定义 && 线性表顺序存储结构
写在前面:本文章来自于在学习过程中的总结,供大家参考。因水平有限,博客中难免会有不足,恳请大佬们不吝赐教!文章目录线性表的定义线性表的顺序存储结构线性表顺序存储结构的优缺点线性表的基本操作顺序存储结构数据的插入和删除线性表的定义线性表:由零个或多个数据元素组成的有限序列。简单的说,就像排队一样,具有先一样性质的结构。关键:首先它是一个序列,也就是说元素之间是有个先来后到的。若元素存在多个,则第一个无前驱,而最后一个元素无后继,其他元素有且只有一个前驱和后继。另外,线性表强调是有限的,.原创 2020-09-15 08:29:22 · 859 阅读 · 0 评论 -
数据结构与算法目录
写在前面:本系列教程来自于在学习数据结构与算法过程中的总结,文章会陆续更新…1.绪论2.线性表的定义与基本操作 && 线性表的顺序存储结构线性链表循环链表双向链表链表的应用...原创 2020-09-10 19:52:08 · 92 阅读 · 0 评论 -
1.绪论
1.数据结构和算法绪论数据结构数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。程序设计 = 数据结构 + 算法简单的来说,数据结构就是一种关系,数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。数据:描述客观世界的数字、字符以及一切能够输入到计算机中,并且能够被计算机程序处理的符号集合。数据元素:数据元素是能够独立、完整地描述问题世界中地实体地最小数据单位。数据对象:一个数据对象被定义为具有下个相原创 2020-09-10 19:21:27 · 356 阅读 · 0 评论 -
快速排序
写在前面:本文章来自于在学习过程中的总结,供大家参考。因水平有限,博客中难免会有不足,恳请大佬们不吝赐教!文章目录1. 算法步骤2. 动图演示3. 代码实现快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。快速排序的名字起的是简单粗暴,因为一听到这个名字你就知道它存在的意义,就是快,而且效率高!它是处理大数据最快的排序算法之一了。虽然 Worst Case 的时间复杂度达到了 O(n²),但是人家就是优秀,在大多数情况下都比平均时间复.原创 2020-08-27 21:10:33 · 90 阅读 · 0 评论 -
位运算
位运算概览符号描述运算规则&与两个位都为1时,结果才为1|或两个位都为0时,结果才为0^异或两个位相同为0,相异为1~取反0变1,1变0<<左移各二进位全部左移若干位,高位丢弃,低位补0>>右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)➢>>>运算符将用0填充高位; >>运算符用符原创 2020-08-23 17:17:30 · 633 阅读 · 0 评论 -
栈和队列
1.栈的定义栈(stack) 是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为 栈顶(top),另一端称为 栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为先进后出的线性表,简称LIFO结构。栈的插入操作,叫做进栈,也称压栈,入栈。类似子弹入弹夹。栈的删除操作,叫做出栈,也有的叫弹栈。如同弹夹中的子弹出夹。2.栈的抽象数据类型对于栈来说,理论上线性表的操作特性它都具备,可由于它的特殊性,所以针对它的操作上会有变化。特别是插入和删除操作,我们改名为push和po原创 2020-05-24 10:28:02 · 213 阅读 · 0 评论 -
链式存储-双向链表
双向链表的定义//双向链表的定义typedef struct DualNode{ ElemType Data; //数据域 struct DualNode* prior; //前驱结点 struct DualNode* next; //后继结点}DualNode,*DuLinkList;双向链表结点的插入s -> prior = p; //把p赋值给s的前驱,如图①s -> next = p+1; //把p->next赋值给s的后继,如图中的②p ->原创 2020-05-21 22:31:59 · 331 阅读 · 0 评论