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);
    }
    

    如图

  • 相关阅读:
    按之字形打印二叉树 --剑指offer
    浅谈PHP+Access数据库的连接 注意要点
    Linux下统计代码行数
    获取服务器IP,客户端IP
    CURL访问举例
    廖雪峰博客
    Redis命令
    svn merge和branch 详解
    Linux Screen超简明教程
    MySQL 的Coalesce函数
  • 原文地址:https://www.cnblogs.com/helloworldcode/p/6796161.html
Copyright © 2011-2022 走看看