数据结构
文章平均质量分 54
林梓烯
这个作者很懒,什么都没留下…
展开
-
数据结构——队列
队列与栈一样都是访问受限的线性表,栈是只能在一端进行删除和插入操作的线性表,而队列是只能在一端进行删除操作,在另一端进行插入操作。栈由于只能在一端操作,因此实现起来会很简单,而队列是在两端操作,实现起来比栈稍微麻烦一点,因为需要考虑两端的指针关系问题。原创 2023-12-08 20:38:20 · 1235 阅读 · 0 评论 -
数据结构——栈
栈是一种只能在一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶,表的另一端称为栈底。如下图所示。在栈中,栈顶的位置是动态变化的,它会根据出栈和进栈操作变更栈顶的位置,进栈操作是将一个元素插入到栈中(只能插入到栈顶),出栈操作是将栈顶元素从栈中删除。进栈操作后栈顶的位置将会变为插入元素所在的位置,出栈操作后栈顶的位置将会变为原栈顶元素的上一个元素的位置。栈顶的位置通常用一个指向栈顶元素的指针或者索引来表示,执行进栈和出栈操作后只需要更改对于的栈顶索引或者指针即可。原创 2023-12-06 23:01:18 · 1463 阅读 · 0 评论 -
数据结构——链表
链表是由多个地址不连续的存储结点连接而成的一种线性表,每个存储结构不仅包含元素本身的信息(数据域),而且包含表示元素之间的逻辑关系的信息,在c/c++中采样指针来实现,称为指针域,这个逻辑关系用指针来表示就是指向在线性表中与其相连的元素的地址。在线性表中,每个元素最多只有一个前驱结点和后继结点,采样链式存储时,每个结点需要包含前驱结点或者后继结点的地址信息,其中最简单也是最常用的方法是只存储每个结点的后继结点的地址,以这种方式构成的链表称为单链表。原创 2023-12-02 23:51:03 · 2911 阅读 · 0 评论 -
哈利波特的考试
哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在哈利·波特的手里有一本教材,里面列出了所有的变形魔咒和能变的动物。老师允许他自己带一只动物去考场,要考察他把这只动物变成任意一只指定动物的本事。于是他来问你原创 2022-06-14 13:20:51 · 455 阅读 · 0 评论 -
最小生成树(prim算法)实例
公路村村通原创 2022-06-08 23:59:45 · 333 阅读 · 0 评论 -
完全二叉树的层次遍历
给出一个完全二叉树的后序遍历序列,求该树的层次遍历序列思路:用数组储存该树的层次遍历序列。按照层次遍历的顺序从1开始排序,一颗完全二叉树的一个序列为 i 的根节点的左子树序列为2i,右子树序列为2i+1。树的后序遍历为先左再右,最后根结点,使用递归函数根据后序遍历的顺序按照结点的序列依次存入数组。该数组即为层次遍历的序列。#include<iostream>using namespace std;int n;int a[1000];void dfs(int x){原创 2022-05-28 00:00:00 · 448 阅读 · 0 评论 -
哈夫曼树的创建
#include<bits/stdc++.h>using namespace std; #define MAX 101#define MaxWeight 300 //最大权值 int n;struct HTreeNode //哈夫曼树结点类型{ char data; //字符 int weight; //权值 int parent; .原创 2022-05-27 00:00:00 · 234 阅读 · 0 评论 -
约瑟夫环(数组)
#include<iostream>using namespace std;#define Maxsize 1000int main(){ int a[Maxsize]; int t=0,i,j,m,n; cin>>m>>n; //m为人数,数到n的人出列 for(i=0;i<m;i++) a[i]=i+1; for(i=m;i>0;i--) { t=(t+n-1)%i; //出列人的编号对人数取模 cout<<.原创 2022-05-06 15:16:49 · 156 阅读 · 0 评论 -
表达式转换并求其值(简易计算器)
后缀表达式,也称逆波兰表达式,是一种十分有用的表达式,它将复杂表达式转换为可以依靠简单的操作得到计算结果的表达式。因此对中缀表达式的求值可以首先转换为后缀表达式再对其求值。这题是书本例题,书本上的例题考虑的情况比较少,只考虑了运算数不带正负号和整数的情况。在做题时经常会遇到运算数带符号和非整数的情况。所以我对书本例题进行了改进,使它能兼容这些情况。第一部分:表达式转换 stack<string> st; string a; cin>>a; int i,j=0,原创 2022-04-18 07:00:00 · 207 阅读 · 0 评论 -
队列的应用——求解迷宫最短路径(广搜)
#include<iostream>#define Maxsize 100using namespace std;struct Box{ int i,j; int pre;}e;template<class T>class Queue{ T *data; int front,rear; public: Queue(){ data=new T[Maxsize]; front=rear=-1; } ~Queue(){ delete[] data.原创 2022-04-26 12:54:14 · 611 阅读 · 0 评论