爱问知识人 爱问教育 医院库

谁能告诉我C语言中的栈如何定义

首页

谁能告诉我C语言中的栈如何定义

我现在在学习C语言版的数据结构,书上只说了栈是先进后出的,也给出了构造空栈的算法,可我在编程时却出现了很多语法错误,大家能否为我举一实例定义栈并构建空栈,谢谢!

提交回答
好评回答
  • 2006-03-26 20:54:14
      你这样试试:
    typedef int Elem;
    #define N 100/*N是栈的足够的空间*/
    Elem stack[N];
    int top;/*栈顶指针,当栈为空时top=1,即top指向栈顶元素的上一个元素*/
    /*定义栈的一般方法*/
    void Init_Stack()/*栈的初始化*/
    {
        top=1;/*清空栈*/
    }
    int IsEmpty()/*判断栈是否为空*/
    {
        if (top=N)return 1;
        else return 0;
    }
    void Push_Stack(Elem x)/*入栈函数*/
    {
        if (IsFull()){printf("Stack is full,cannot push element!");exit(0);}
        stack[top]=x;
        top++;
    }
    Elem  Pop_Stack()/*出栈函数*/
    {
         Elem ret;
         if(IsEmpty()){printf("Stack is empty,cannot pop element!\n");exit(0);}
         top--;
         ret=stack[top];
         return ret;
    }
    main()/*用作测试*/
    {
         int i=0;
         Init_Stack();
         for (i=0;i<10;i++)
    	Push_Stack(i);
         for (i=0;i<10;i++)
    	printf("%4d",Pop_Stack());
    }
    /*------------------*/
    可以根据你的需要丰富你的栈处理方法,如果用C++的话,写出来的就比较好了。
      

    老***

    2006-03-26 20:54:14

类似问题

换一换
  • 软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):