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++能做的

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

  • 相关阅读:
    HTML标签语义化对照表
    C#自定义分页控件3.0
    并发小工具
    C#方法
    我所知道的一个简单类
    等快递无聊旋转字符串
    委托
    撒列实现关键字过滤,速度可快了
    垃圾回收代
    递归再一次让哥震惊了
  • 原文地址:https://www.cnblogs.com/xiaochen520/p/9181072.html
Copyright © 2011-2022 走看看