• C语言实现的顺序栈


    c语言实现的顺序栈包括一些基本操作

    #include<stdio.h>
    #include<stdlib.h>
    //顺序栈
    typedef struct book
    {
    	char name[10];
    	float price;
     }book;
     typedef book Book;
     typedef struct Stack
     {
     	Book *data;
     	int top;
     }Stack;
     
     //初始化
     void InitStack(Stack *S)
     {
     	S->data=(Book*)malloc(sizeof(Book)); 
    // 	S=(Stack*)malloc(sizeof(Stack));
     	if (!S->data)
     	{
     		printf("初始化失败!
    ");
     		exit(1);
    	}
    	S->top=-1;
    	printf("初始化成功!
    ");
      } 
      
      //入栈 
      void Push(Stack *S,Book b)
      {
         S->top++;
    	 S->data[S->top]=b; 
       } 
       
       //出栈 
       Book Pop(struct Stack *S)
       {
       	 Book b;
       	 b=S->data[S->top];
       	 S->top--;
       	 return b;
       } 
       
      //判断栈空
       void isEmpty(Stack *S)
       {
       	if (S->top==NULL)
       	{
       		printf("栈不存在!
    ");
       		exit(1);
    	}
       	if (S->top==-1)
       	{
       		printf("栈为空!
    ");
    	}
    	printf("栈非空!
    ");
       }
       
       //销毁
       void Destroy(Stack *S)
       {
       	 free(S->data);
       	 S->top=NULL;
       	 printf("成功销毁!
    ");
       	 return;
    	} 
       void main()
       {
       	int i,k;
       	Stack S,*p;
       	p=&S;
       	Book b;
       	InitStack(&S);
       	//Push两个元素 
        	for (i=0;i<2;i++)
        	{
    	   	    printf("请输入书本的name和price:
    ");
       	        scanf("%s%f",&b.name,&b.price);
       	        Push(&S,b);
        	} 
        //Pop全部元素 
        k=1;
            while (p->top!=-1)
    		{
    			Book b1=Pop(&S);
    			printf("出栈的第%d个元素:name: %s ,price: %f 
    ",k++,b1.name,b1.price);
    		 } 
    		 Destroy(&S);
    		 isEmpty(&S);
       }
    
  • 相关阅读:
    安装win7 ubuntu双系统
    idea maven打jar包
    mongodb入门
    mongodb备份与恢复
    使用cmd时cd命令失效
    vue 项目中使用阿里巴巴矢量图标库iconfont
    vue img标签用法
    vue 点击当前元素改变样式
    vue 路由跳转传参
    iview table绑定双击事件
  • 原文地址:https://www.cnblogs.com/glory-yl/p/14663778.html
Copyright © 2020-2023  润新知