zoukankan      html  css  js  c++  java
  • 栈的链式存储

    如图,和线性表的链式存储十分类似


    #include<stdio.h>
    #include<malloc.h>
    typedef struct node{
    	int data;
    	struct node *next;
    }StackNode,*LinkStack;
    
    
    LinkStack Init_Stack()
    {
    	LinkStack ls=NULL;
    	return ls;
    }
    
    int Empty_LinkStack(LinkStack p)
    {
    	if(p==NULL)
    		return 0;
    	else
    		return 1;
    }
    
    void push(LinkStack *ls,int *x)
    {
    	LinkStack p=(LinkStack)malloc(sizeof(StackNode));
    	p->data=*x;
    	p->next=*ls;
    	*ls=p;
    }
    
    int pop(LinkStack *ls,int *y)
    {
    	LinkStack p;
    	if(Empty_LinkStack(*ls))
    	{
    		p=*ls;
    		*y=p->data;
    		*ls=(*ls)->next;
    		p->next=NULL;
    		free(p);
    		return *y;
    	}
    	else
    		return 0;
    }
    
    void print(LinkStack ls)
    {
    	LinkStack p=ls;
    	printf("输出栈中的元素:
    ");
    	while(p!=NULL)
    	{
    		printf("%d  ",p->data);
    		p=p->next;
    	}
    	printf("
    ");
    }
    
    void main()
    {
    	LinkStack ls=Init_Stack();
    	int n,i,x,y;
    	printf("请输入可能要入栈的个数:");
    	scanf("%d",&n);
    	printf("请输入一组要入栈的数据:
    ");
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&x);
    		push(&ls,&x);
    	}
    	print(ls);
    	printf("弹出栈顶的元素是:%d
    ",pop(&ls,&y));
    	print(ls);
    }
    

    如图

  • 相关阅读:
    想写点啥?
    网站优化记录
    freemarker了解
    spring理解
    mybatis了解
    struts机制
    SSM整合时初始化出现异常
    常用的正则表达式
    MySQL数据库安装配置步骤详解
    完全卸载MySQL数据库,实现重装
  • 原文地址:https://www.cnblogs.com/helloworldcode/p/6796161.html
Copyright © 2011-2022 走看看