定义一个堆栈的类,有入栈,出栈输出栈中所有的元素的功能

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 02:02:42

定义一个堆栈的类,有入栈,出栈输出栈中所有的元素的功能
定义一个堆栈的类,有入栈,出栈输出栈中所有的元素的功能

定义一个堆栈的类,有入栈,出栈输出栈中所有的元素的功能
/*
供参考!
*/
# include
# include
# include
typedef struct Node
{
\x05int data;
\x05struct Node * pNext;
}NODE,* PNODE;
typedef struct Stack
{
\x05PNODE pTop;
\x05PNODE pBottom;
}STACK,* PSTACK;
void init(PSTACK pS);//栈初始化
void push(PSTACK pS,int val);//压栈
void traverse(PSTACK pS,int len);//遍历栈
int pop(PSTACK pS);//出栈
bool empty(PSTACK pS);//判断栈是否为空
int main(void)
{
\x05STACK s;
\x05printf("初始化栈:.\n");
\x05init(&s);
\x05printf("压栈.\n");
\x05printf("请输入要压入栈的元素个数:\t");
\x05int len;
\x05scanf("%d",&len);
\x05int i,val;
\x05for (i=0; ipTop = (PNODE)malloc(sizeof(NODE));
\x05if (NULL == pS->pTop)
\x05{
\x05\x05printf("动态内存分配失败!\n");
\x05\x05exit(-1);
\x05}
\x05else
\x05{
\x05\x05pS->pBottom = pS->pTop ;
\x05\x05pS->pTop->pNext = NULL;
\x05}
\x05return;
}
void push(PSTACK pS,int val)
{
\x05PNODE pNew = (PNODE)malloc(sizeof(NODE));
\x05pNew->data = val;
\x05pNew->pNext = pS->pTop ;
\x05pS->pTop = pNew;
\x05return ;
}
void traverse(PSTACK pS,int len)
{
\x05int i,val;
\x05
\x05for(i=0; ipTop == pS->pBottom)
\x05{
\x05\x05return true;
\x05}
\x05else
\x05\x05return false;
}
int pop(PSTACK pS)
{
\x05int val;
\x05if (empty(pS))
\x05{
\x05\x05return 1;
\x05\x05printf("栈为空!程序结束\n");
\x05\x05exit(-1);
\x05}
\x05else
\x05{
\x05\x05PNODE r = pS->pTop;
\x05\x05val = r->data ;
\x05\x05pS->pTop = r->pNext;
\x05\x05free(r);
r = NULL;
\x05\x05return val;
\x05}
}
/*
在vc++6.0中的输出结果是:
--------------------
初始化栈:.
压栈.
请输入要压入栈的元素个数:3
第1个入栈元素:4
第2个入栈元素:5
第3个入栈元素:6
遍历栈.
6 5 4
-----------------------
*/

定义一个堆栈的类,有入栈,出栈输出栈中所有的元素的功能 定义一个栈抽象类型,将数字序列(1,2,3)进行入堆栈操作,最后将这些数字进行出栈操作帮个忙,解决下代码写全,能够运行和并有main测试函数 设一个堆栈段共有100H个字节单元,堆栈的起始地址是1250H:0000H,若在堆栈中有5个字数据,求SS和SP的内容?还有栈顶的物理地址、栈底的物理地址 已知SS=1000H,SP=2000H堆栈段最后一个单元的物理地址为13000H 求堆栈段的断首物理地址 栈顶物理地址 栈底偏移地址 如何根据需要定义堆栈段的大小? 堆栈栈顶地址高还是栈底地址高?还要进栈出栈的顺序如何,即先调整指针还是先压栈或出栈, 写一个简单的计算器,输入一个数学表达式程序输出结果 input:8+9-2 output:15 input:-0.1*9 output:-0.9堆栈这个思路是不是没考虑优先级的问题,先*/后+-.如果用2个栈,一个栈放数字一个栈放符号,遇到+- 如何利用 逆波兰式 把 中序表达式 装进一个 队列 或者堆栈 里面呢?比如 2+8*6/2-(1*5)+8/(2+4*4)再如何运算出这个表达式的结果呢? 堆栈的具体概念就是与C++有关的就是C++运行栈的. 9.将a,b,c,d,e,f,g 六个元素一次存放入堆栈,则写面那一个不可能是该堆栈元素的出栈序列:( )A)a,b,c,d,e,f,g B)a,c,b,d,f,e,g C)c,b,a,f,e,d ,g D)d,e ,a,c,b,f,g 定义一个栈,将5个整数依次入栈,然后依次弹出栈顶元素直至栈为空,并输出出栈元素. 一个堆栈从地址1200:0000H开始,他的最后一个偏移地址为0200H,SP的内容为0052H.请问:1 这个偏移地址0200H是不是在栈底?也就是说这个偏移地址是最先进入堆栈的?2 当存入数据1234H后,SP的内容等于SP 设数据元素序列{a,b,c,d,e,f,g}的进堆栈操作和出堆栈操作可任意进行(排除堆栈为空时的出堆栈操作情况),下列哪些数据元素序列可由出堆栈序列得到:(1){d,e,c,f,b,g,a}; (2){f,e,g,d,a,c,b}; ( 为什么要定义堆栈段,很多汇编程序都没有显性的用到堆栈段(既没有用到ss和sp,pop,push),但还是定义了堆栈段,并开辟了一定的存储空间,既然没用到,为什么要定义堆栈段并且开辟存储空间?如 mathematica中如何在定义的函数中输出图形 定义一个圆类,然后在主函数中创建圆类的2个对象,最后输出这两个对象的面积和周长 ABAQUS INP中如何定义输出某个集合的加速度? 求12v变压器用7805转 +5v稳压输出的电路图及所需元件手头有个12v变压器,需要转换出一个+5v的稳压输出,使用中电流负载大概有1.7A,求一个用7805的电路图……