1 晁小粉

尚未进行身份认证

Humble and Hungry

等级
TA的排名 26w+

后缀式转换为中缀式计算结果

问题描述编写一个函数,求后缀式的数值,其中一个后缀式存于一个字符数组exp中,exp最后一个字符为“\0”,作为结束符,并且假设后缀式中的数字都只有一位。本题中所出现的除法运算,皆为整除运算,如2/3结果为0,3/2结果为1。思路此题为后缀式表达式与中缀表达式之间的转换。当遇到数值的时候入栈,当遇到运算符的时候,连续两次入栈,将两个出栈元素结合运算符进行运算,将结果当成新遇到的数值入栈,如此...

2020-01-16 11:31:42

利用两个栈s1和s2来模拟一个队列。

问题描述请利用两个栈s1和s2来模拟一个队列,假设栈中元素为int型,栈中元素最多为maxSize,已知栈的三个运算定义如下。push(ST,x):元素x入栈 push(ST,&x):栈顶元素出栈,赋给变量xisEmpty(ST)判断ST栈是否为空如何利用栈的运算来实现该队列的三个运算:enQueue(元素入队列)、deQueue(元素出队列)、isQueueEmpty...

2020-01-16 10:12:41

共享栈--顺序栈s0、s1共享一个存储区elem[0,..., maxSize-1],试设计共享栈s0、s1,以及入栈出栈操作的方法,假设栈中元素为int型。

问题描述共享栈–顺序栈s0、s1共享一个存储区elem[0,…, maxSize-1],试设计共享栈s0、s1,以及入栈出栈操作的方法,假设栈中元素为int型。思路共享栈–相比于普通栈,共享栈主要是为了提高内存的利用率和减少溢出的可能性而设计的。应该在一片连续的内存空间中将两栈栈底分别设在这片内存空间的两端,这样当两个栈的栈顶在栈空间的某一位置相遇时,才产生上溢。源代码#include&...

2020-01-15 19:32:26

链队

问题描述链队思路链队是采用链式存储结构存储队列,这里采用单链表来实现。链队的特点就是不存在队列满上溢的情况(这里不严格,内存满了就上溢了)。源代码#include#define maxSize 50using namespace std;//队结点类型定义typedef struct QNode{int data;struct QNode *next;}QNode;//...

2020-01-15 17:51:20

顺序队(循环队列为了防止假溢出)

问题描述顺序队(循环队列为了防止假溢出)思路略源代码#include<iostream>#define maxSize 50using namespace std;typedef struct{ int data[maxSize]; int front;//队首指针 int rear;//队尾指针 }SqQueue;//顺序队类型定义 //初始化队列 ...

2020-01-15 16:46:38

一个算术表达式中的括号只有小括号。编写算法,判断一个表达式中的括号是否正确配对,表达式已经存入字符数组exp[]中,表达式的字符个数为n。

问题描述一个算术表达式中的括号只有小括号。编写算法,判断一个表达式中的括号是否正确配对,表达式已经存入字符数组exp[]中,表达式的字符个数为n。思路在解决问题的过程中出现了一个子问题,但凭现有条件不能解决它,需要记下,等待以后出现可以解决它的条件后再返回解决,这种问题可以用栈来解决,栈具有记忆的功能,这是栈的FILO特性所延伸出来的一种特性。源代码#include<iostrea...

2020-01-15 12:54:13

链栈(带头结点链栈和不带头结点链栈)

问题描送链栈(带头结点链栈和不带头结点链栈)思路插入和删除方式不同哦,但是链栈和单链表一样写法,栈其实就是一个出入方式有限制的顺序表。但是插入和删除方式不同,此题就不写执行结果。本题重点在带头结点链栈和不带头结点链栈的插入和删除问题!!!源代码#include<iostream>#define maxSize 50using namespace std;typedef ...

2020-01-15 11:34:36

顺序栈

问题描述顺序栈思路这里采用数据结构使用的方法.当然栈这么写编程更方便:int stack[maxSize];int top=-1;元素进栈:stack[++top]=x;元素出栈:x=stack[top–]源代码#include<iostream>#define maxSize 50using namespace std;typedef struct{ int da...

2020-01-15 10:56:58

(此题重点!!!)假设设A和B均为顺序表,A’和B’分别为A和B中除去最大共同前缀后的子表,比较A和B的大小。

问题描述假设设A和B均为顺序表,A’和B’分别为A和B中除去最大共同前缀后的子表(例如,A=(x,y,y,z,x,z),B=(x,y,y,z,y,x,x,z),则两者中最大的共同前缀为(x,y,y,z),在两表中除去最大共同前缀后的子表分别为A’=(x,z)和B’=(y,x,x,z)。若A’=B’=空表,则A=B;若A’=空表,而 B’!=空表,或者两者均不为空表,且A’的首先小于B’的首元,则...

2020-01-02 17:21:56

(此题重点!!!)有N个各位正整数存放在int型数组中A,和i,要求只用上述变量(A[0]-A[N-1]与i,这N+1个整形变量)写一个算法,找出这N个整数中的最小者,要求不能破坏数组A[]中的数据。

问题描述有N个各位正整数存放在int型数组中A[0,N,…,N-1]中,N为已定义的常量且N<=9,数组A[]的长度为N,另个一个int型变量i,要求只用上述变量(A[0]-A[N-1]与i,这N+1个整形变量)写一个算法,找出这N个整数中的最小者,要求不能破坏数组A[]中的数据。思路i是int型变量,对于处理N模块的数据足够用,可以让i的十位数字作为循环变量,i个个位数字替代日常m...

2020-01-02 16:35:52

递归逆序打印单链表中的数据

问题描述写一个函数,逆序打印单链表中的数据,假设指针L指向了单链表的开始结点。思路递归逆序打印出来即可。源代码#include<iostream>#include <stdlib.h>using namespace std;typedef struct LNode{ int data; struct LNode *next;}LNode;LNode...

2020-01-02 16:02:14

(此题重点!!!)带头结点的单链表,该单链表只给出了头指针head。在不改变链表的前提下,查找链表倒数第k个位置上的结点。若查找成功,算法输出该结点的data值,并返回1,;否则,只返回0。

问题描述带头结点的单链表,该单链表只给出了头指针head。在不改变链表的前提下,查找链表倒数第k个位置上的结点。若查找成功,算法输出该结点的data值,并返回1,;否则,只返回0。思路...

2020-01-02 15:42:56

(此题重点!!!)已知一个整数序列 A =(a 0 ,a 1 ,..., a n-1 ),找出 A 的主元素

问题描述已知一个整数序列 A =(a 0 ,a 1 ,…, a n-1 ) , 其中0≤ai<n(0≤i<n)。 若存在a p1 =a p2 =…=a pm =x且m>n/2(0≤p k <n,1≤k≤m),则称 x 为 A 的主元素。 例如A= ( 0, 5, 5, 3, 5, 7, 5, 5 ),则 5 为主元素;又如 A= ( 0, 5, 5, 3, 5, 1, 5...

2020-01-01 20:18:29

设计一个算法,讲一个头结点为A的单链表(其数据域)为整数分解成两个单链表A、B,使得A链表只含有原来链表中data域为奇数的结点,而B中只含有原表中data域为偶数的结点,保存原来的相对顺序。

问题描述设计一个算法,讲一个头结点为A的单链表(其数据域)为整数分解成两个单链表A、B,使得A链表只含有原来链表中data域为奇数的结点,而B中只含有原表中data域为偶数的结点,保存原来的相对顺序。思路略源代码#include<iostream>#include <stdlib.h>using namespace std;typedef struct LN...

2020-01-01 17:22:30

有一个线性表,采用带头结点的单链表L来存储。设计一个算法将其逆置。要求不能建立新结点,只能通过表中已有结点是重新组合来完成。

问题描述有一个线性表,采用带头结点的单链表L来存储。设计一个算法将其逆置。要求不能建立新结点,只能通过表中已有结点是重新组合来完成。思路关于逆序的问题,就是单链表的头插法建表,L->next=NULL,然后头插建表。注意:LNode p=L->next后为什么可以L->next=NULL了呢?是因为相当于p标记了单链表,和头指针可以唯一标记单链表的作用是一样的。源代码#...

2020-01-01 16:39:15

设计一个算法删除单链表L(有头结点)中的一个最小值。

问题描述设计一个算法删除单链表L(有头结点)中的一个最小值。思路用p从头到尾扫描单链表,pre指向*p结点的前驱,用minp保存最小的结点指针,minpre指向minp的前驱,一边扫描,一边比较,将最小值结点放到minp中。注意删除结点需要前驱结点!!!源代码#include<iostream>#include <stdlib.h>using namespac...

2020-01-01 15:26:06

递增非空单链表删除值域重复结点问题

问题描述递增非空单链表删除值域重复的结点,例如1,2,2,3,5删除后为1,2,3,5.思路无,但是注意是p->next=NULL,不是p!=NULL,因为是p的后继结点不为空,找不到后继结点为止。源代码#include<iostream>#include <stdlib.h>using namespace std;typedef struct LNo...

2020-01-01 15:08:56

(此题重点!!!)有一个顺序表L,其元素为整形数据,设计一个算法,将L中所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分。

问题描述有一个顺序表L,其元素为整形数据,设计一个算法,将L中所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分。思路先将L的第一个元素存于变量temp中,然后定义两个变量i和j。i从左往右扫描,j从右往左扫描,边扫描边交换。源代码(觉得这个题很重要)#include<iostream>#define maxSize 50using namespace s...

2020-01-01 14:49:58

设计一个算法,从一给定的顺序表L中删除下标i-j元素

问题描述设计一个算法,从一给定的顺序表L中删除下标i~j(i<=j,包括i、j)的所有元素,假定i、j都是合法的。思路本题是顺序表删除元素的扩展,可以采用以下方法解决:从j+1个元素开始到最后一个元素为止,用这之间的每一个元素去覆盖从这个元素开始往前数j-i+1个元素,即可完成删除i~j的所有元素。源代码#include<iostream>#define maxSiz...

2020-01-01 11:38:36

顺序表元素逆置问题

问题描述设计一个算法,将顺序表所有元素逆置思路设置两个变量i、j指向顺序表第一个元素和最后一个元素即可,i++、j–交换元素即可。注意:for循环中的执行条件要写成i<j,不要写成i!=j;如果数组中元素个数为偶数是,i!=j,i会继续往右走,j会继续往左走,会相互跨越对方。源代码#include<iostream>#define maxSize 50using n...

2020-01-01 11:17:37

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。