baidu_24427837 2014-12-11 10:55 采纳率: 50%
浏览 2053
已采纳

有哪位哥哥姐姐可以帮我写下程序(关于二叉树的 或者栈)

那个运用c++编写两个程序,其中一个是实现二叉树(或者栈),另一个是运用二叉树(或者栈)解决实际问题。谢谢啦,实在是没搞懂。

  • 写回答

2条回答

  • threenewbee 2014-12-11 11:26
    关注

    /**

    • <!--
    • File : stack.h
    • Author : fancy
    • Email : fancydeepin@yeah.net
    • Date : 2013-02-03
    • --!> */ #include #include #include #define Element char #define INIT_SIZE 10 #define INCREMENT_SIZE INIT_SIZE / 2

    typedef struct TStack {
    Element *base;
    Element *top;
    int size;
    } *Stack;

    //栈的构造器,创建空栈
    void stackConstructor(Stack &stack){
    stack->base = (Element *)malloc(INIT_SIZE * sizeof(Element));
    if(!stack->base){
    printf("\n为栈分配内存空间失败!\n");
    exit(0);
    }
    stack->top = stack->base; //空栈 top == base
    stack->size = INIT_SIZE;
    }

    //是否为空栈
    bool isEmpty(Stack stack){
    if(stack->top == stack->base){
    return true;
    }
    return false;
    }

    //压栈
    bool push(Stack &stack, Element e){
    if(stack->top - stack->base >= stack->size){ //栈满
    stack->base = (Element *)realloc(stack->base, (stack->size + INCREMENT_SIZE) * sizeof(Element));
    if(!stack->base){
    printf("\n为栈扩展内存空间失败!\n");
    return false;
    }
    stack->top = stack->base + stack->size;
    stack->size += INCREMENT_SIZE;
    }
    *stack->top++ = e;
    return true;
    }

    //弹栈
    Element pop(Stack stack){
    if(isEmpty(stack)){
    printf("\n栈为空,弹栈操作失败!\n");
    return ' ';
    }
    return *--stack->top;
    }

    /**

    • <!--
    • File : Stack.cpp
    • Author : fancy
    • Email : fancydeepin@yeah.net
    • Date : 2013-02-03
    • --!> */ #include "stack.h"

    int main() {

    Stack stack;
    stackConstructor(stack);
    push(stack, 'f');
    push(stack, 'a');
    push(stack, 'n');
    push(stack, 'c');
    push(stack, 'y');
    printf("%c", pop(stack));
    printf("%c", pop(stack));
    printf("%c", pop(stack));
    printf("%c", pop(stack));
    printf("%c", pop(stack));
    //output[result]: ycnaf
    return 0;
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何提取csv文件中需要的列,将其整合为一篇完整文档,并进行jieba分词(语言-python)
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?