#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define STACK_INIT_SIZE 20
#define STACKINCREMENT 10
   6:  
int ElemType;
struct {
   9:     ElemType *base;
  10:     ElemType *top;
int stacksize;
  12: } sqStack;
/*初始化栈*/
void initStack(sqStack *s)
  15: {
/*内存中开辟一段连续空间作为栈空间,首地址赋值给s->base*/
sizeof(ElemType));
  18:  
/*分配空间失败*/
  20:  
/*最开始,栈顶就是栈底*/
/*最大容量为STACK_INIT_SIZE */
  23: }
/*入栈操作,将e压入栈中*/
void Push(sqStack *s, ElemType e) {
if(s->top - s->base >= s->stacksize) {
/*栈满,追加空间*/
  28:         s->base = (ElemType *)realloc(s->base, (s->stacksize +
sizeof(ElemType));
  30:  
/*存储分配失败*/
  32:  
  33:         s->top = s->base + s->stacksize;
/*设置栈的最大容量*/
  35:     }
  36:  
/*放入数据*/
  38:     s->top++;
  39: }
/*出栈操作,用e将栈顶元素返回*/
void Pop(sqStack *s , ElemType *e) {
return;
  43:  
  44:     *e = *--(s->top);
  45: }
  46:  
int n)
  48: {
int r = 1, e;
  50:     sqStack stack;
/*初始化栈*/
  52:  
while(n != 0) {
/*保存现场n*/
  55:         n = n / 2;
  56:     }
  57:  
while(stack.top != stack.base)
  59:     {
  60:         Pop(&stack, &e);
  61:         r = r * e;
  62:     }
  63:  
return r;
  65: }
  66:  
int main()
  68: {
);
, f(5));
return 0;
  72: }

相关文章:

  • 2022-12-23
  • 2021-12-06
  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
  • 2021-08-28
  • 2022-12-23
  • 2021-06-22
猜你喜欢
  • 2021-10-17
  • 2021-12-17
  • 2021-11-28
  • 2022-12-23
  • 2021-07-08
  • 2022-02-23
相关资源
相似解决方案