汇编网首页登录博客注册
chinatree的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2011-10-11 02:02] C语言栈

#include "stdio.h"
#include "malloc.h"
#include "mem.h"/*memset在这*/
#include "dos.h"
typedef struct abc
{
   int a[100];
   int b;
}AB;
int x=0;
AB * create()/*建栈*/
{  AB * p;
   p=(AB *)malloc(sizeof(AB));
   return p;
}
char full(AB *p)/*测试栈满*/
{
   if(p->b<=0)
      return 1;
   else
      return 0 ;
}
char kong(AB * p)/*测试栈空*/
{
   if(p->b>=100)
      return 1;
   else
      return 0;
}
void push(AB * p,int q) /*压栈*/
{
    extern x;
   if(full(p))
     {
      printf("stack full!\n");
      sleep(2);
      return ;
     }
   else
      p->b--;
      p->a[p->b]=q;
      x++;
      printf("number %d\n",x);
      sleep(2);
    return ;
}
void pop(AB * p,int q)/*出栈*/
{
   extern x;
   if(kong(p))
      {  printf("stack kong!\n");
      sleep(2);
         return ;
      }
   else
      q=p->a[p->b];
      p->b+=1;
      x--;
      printf("%d\n",q);
      printf("number %d\n",x);
      sleep(2);
   return ;
}
void traverse(AB * p)/*遍历输出*/
{
   extern x;
   int i=x;
   if (!x)
     {
       printf("\nNULL!\n");
       sleep(2);
       return;
     }
     else
   while(i--)

      printf("%d  ",p->a[p->b+i]);
      sleep(5);

      return ;
}
int main(void)
{
   int s;
   AB *ab;
   ab=create();
   memset(ab,0,sizeof(int)*101);
   ab->b=100;
   while(1)
   {
      clrscr();
      printf("1.push\n");
      printf("2.pop\n");
      printf("3.traverse\n");
      s=getch();
      if(s==0x1b) break;/*ESC退出*/
      else if(s<0x31||s>0x33) continue;
      else
         switch(s)
          {
            case 0x31:
               printf("Please input a number!\n");
               scanf("%d",&s);
               push(ab,s);
               break;
            case 0x32:
             printf("pop :");
               pop(ab,s);
               break;
            case 0x33:
               traverse(ab);break;
            }
    }
   free(ab);
   return 0;
}

http://www.asmedu.net/blog/user/bigimg.jsp?neighborId=41617&pic=pic_1318269261406.jpg" alt="图">
http://www.asmedu.net/blog/user/bigimg.jsp?neighborId=41617&pic=pic_1318269292484.jpg" alt="图">
http://www.asmedu.net/blog/user/bigimg.jsp?neighborId=41617&pic=pic_1318269300640.jpg" alt="图">
评论次数(1)  |  浏览次数(822)  |  类型(默认类型) |  收藏此文  | 

[  chinatree   发表于  2011-10-11 02:08  ]

UBB代码还是玩不好。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码