zoukankan      html  css  js  c++  java
  • C语言/C++编程学习:栈的代码实现之数组方案

    C语言是面向过程的,而C++是面向对象的

    C和C++的区别:

    C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

    C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

    C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

    栈是一种具有从宏观上来看是“先进后出”功能特点的数据结构。可以由数组或者链表来实现。

    其实现原理是从“一端”操作,导致先存储的数据最后被取出。有栈顶、栈底等因素组成。:栈的代码实现之数组方案,中对栈的内存实现原理进行了详解。这里只从宏观上来理解,以及相关代码如何实现。

    其结构体类型为:

    #define N 30

    struct _stack

    {

    int top;

    int data[N];

    };

    typedef struct _stack mystack;

    对栈的操作通常有初始化、判断栈空、栈满,入栈,操作,清空等操作。这里分别实现:

    小编推荐一个学C语言/C++的学习裙【 七三零,一三零,二二一 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    小编推荐一个学C语言/C++的学习裙【 七三零,一三零,二二一 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    调用代码:

    int main() {

    mystack ms;

    init(&ms);

    int flag = 0;

    int value = 0;

    value = 0;

    flag = push(&ms, value);

    if (flag)

    {

    printf("%d 入栈成功 ", value);

    }

    else

    {

    printf("%d 入栈失败 ", value);

    }

    value = 1;

    flag = push(&ms, value);

    if (flag)

    {

    printf("%d 入栈成功 ", value);

    }

    else

    {

    printf("%d 入栈失败 ", value);

    }

    value = 2;

    flag = push(&ms, value);

    if (flag)

    {

    printf("%d 入栈成功 ", value);

    }

    else

    {

    printf("%d 入栈失败 ", value);

    }

    show(&ms);

    //弹出栈

    int output_value = 0;

    int output_flag = 0;

    output_flag = pop(&ms, &output_value);

    if (output_flag)

    {

    printf("出栈成功,出栈的数据为:%d ", output_value);

    }

    else

    {

    printf("出栈失败 ");

    }

    output_flag = pop(&ms, &output_value);

    if (output_flag)

    {

    printf("出栈成功,出栈的数据为:%d ", output_value);

    }

    else

    {

    printf("出栈失败 ");

    }

    output_flag = pop(&ms, &output_value);

    if (output_flag)

    {

    printf("出栈成功,出栈的数据为:%d ", output_value);

    }

    else

    {

    printf("出栈失败 ");

    }

    show(&ms);

    system("pause");

    return 0;

    }

    测试结果:

    小编推荐一个学C语言/C++的学习裙【 七三零,一三零,二二一 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    这些是C/C++能做的

    服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

  • 相关阅读:
    EF架构~系列目录
    不谈技术~做一个好人,一个简单的人
    不谈技术~谈人生,干吧,年轻人!
    c++ 用lambda删除vector中元素
    转:我们为什么这么容易受骗?
    windows 数据类型
    《暗时间》书摘 “学习与思考”
    转:斯托克代尔悖论与底线思考法
    Android之HelloWorld
    win7搭建android开发环境
  • 原文地址:https://www.cnblogs.com/xiaochen520/p/9181072.html
Copyright © 2011-2022 走看看