栈的实现

#include<iostream>  
#include<stdio.h>  
#include<string.h>  
#include<malloc.h>  
#define VARTYPE char //默认存放char类型  
  
  
using namespace std;  
  
  
  
  
struct myNode;  
typedef struct myNode Node;  
typedef Node* _Stack;  
typedef Node* PtrToNode;  
  
  
struct myNode  
{  
    VARTYPE data;  
    PtrToNode next;  
};  
  
  
void _push(_Stack &T,VARTYPE x)  
{  
    PtrToNode tmp = (PtrToNode)malloc(sizeof(Node));  
    if(tmp==NULL)  
        perror("malloc failed");  
    else  
    {  
        tmp->data = x;  
        tmp->next = T;  
        T = tmp;  
    }  
}  
  
  
void _pop(_Stack &T)  
{  
    PtrToNode tmp;  
    tmp = T;  
    T = T->next;  
    free(tmp);  
}  
  
  
int _isempty(_Stack &T)  
{  
    return T->next==NULL;  
}  
  
  
void _delstack(_Stack &T)  
{  
    while(!_isempty(T))  
    {  
        _pop(T);  
    }  
}  
  
  
VARTYPE _top(_Stack &T)  
{  
    return T->data;  
}  
  
  
_Stack create(_Stack &T)  
{  
    T = (PtrToNode)malloc(sizeof(Node));  
    T->next = NULL;  
    return T;  
}  
  
  
int main()  
{  
    _Stack T = create(T);  
    _push(T,'a');  
    _push(T,'b');  
    _push(T,'c');  
    _pop(T);  
    _pop(T);  
    _pop(T);  
    _delstack(T);  
    return 0;  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 栈 栈是一种基础的数据结构,只从一端读写数据。基本特点就”后进先出“,例如顺序入栈1,2,3,4,5,再顺序出栈是...
    月见樽阅读 4,280评论 0 0
  • 栈概念 栈是元素的集合, 其中有两个原则操作: push, 它添加到集合中 pop 则移除最近添加的元素 Push...
    殇透俄0心阅读 2,910评论 0 0
  • 栈的特点:先进后出,后进先出除头尾节点之外,每个元素有一个前驱,一个后继。 图一 栈的示意图 实现功能:判断非空、...
    毕丙伟阅读 2,523评论 0 0
  • http://www.chaishubang.com/memoirs/memoirsinfo/1324
    Fly_Catkin阅读 1,157评论 0 0
  • 妈妈困了。 可爸爸很想妈妈,好想好想和妈妈多说一会儿话,只是妈妈已经迷糊着了。 爸爸就跑到了这里陪着我。 然后,他...
    画念风阅读 1,373评论 0 1

友情链接更多精彩内容