![](https://img-blog.csdnimg.cn/2020070911333767.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
考研学习数据结构遇到的一些题目
是小蜗牛啊
这个作者很懒,什么都没留下…
展开
-
用栈实现表达式转换
中缀转后缀:从左到右依次扫描中缀表达式,遇到操作数就直接写出来(顺序是从前往后写),遇到运算符时,判断当前运算符与栈顶运算符的优先级,如果当前运算符的优先级小于或者等于栈顶元素运算符的优先级,就把栈顶运算符出栈,并将其写入当前结果表达式中(这个比较是个循坏,依次把当前元素和新的栈顶元素进行比较,如果还是小于等于则继续出栈,知道比较的是结果是大于栈顶运算符优先级则把当前运算符出栈)。对于表达式中含有括号,当遇到左括号则直接入栈,当栈顶元素是左括号时则扫描的元素全入栈,当扫描的运算符是右括号时则执行一系列出原创 2020-07-19 09:24:20 · 812 阅读 · 0 评论 -
逆序打印单链表
问题:写一个函数,逆序打印单链表中的数据,假设指针L指向了单链表的开始结点。分析可用递归的方式解决,在表不为空的情况下先递归地逆序打印表中第一个数据之后,然后打印第一个数据代码#include <iostream>#include<stdlib.h> #define maxSize 50using namespace std;typedef struct LNode{ int data; struct LNode *next;}LNode;LN原创 2020-07-10 09:47:33 · 709 阅读 · 2 评论 -
线性表划分问题
有一个顺序表L,其元素为整形数据,设计一个算法,将L中所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分算法思想:先将L的 第一个元素存于变量temp中,然后定义两个整型变量i和j。i从左往右扫描,j从右往左扫描,边扫描边交换。代码:#include<iostream>#define maxSize 50using namespace std;typedef struct { int data[maxSize]; int length;}Sqlist;vo原创 2020-07-09 18:55:33 · 676 阅读 · 0 评论 -
线性表划分排序
设顺序表用数组A[]表示,表中元素存储在数组0~m+n-1 的范围内,前m个元素递增有序,后n个元素递增有序,设计算法使整个顺序表有序算法设计思想:将数组A[]中的m+n个元素(假设元素为int型)看成两个顺序表:表L和表R。将数组当前状态看做起始状态,即此时表L由A[]中后n个元素构成。要使A[]中m+n个元素有序,只需将表R中的元素逐个插入表L中的合适位置。插入过程:取表R中的第一个元素A[m]存入辅助变量temp中,让temp逐个与A[m-1],···,A[0]进行比较,当temp<A[j原创 2020-07-09 11:20:43 · 368 阅读 · 0 评论