1 链式结构的结构体,节点的数据类型。概念:头指针指向头节点,和尾节点。typedef struct node{int data;struct node* next;记录下一个地址的节点,这里不能省略struct}node;#include#includetypedef struct node{ int data; struct node* naxt;记录下一个节点的地址}node;//定义栈的数据类型typedef struct{ node * head;//头指针 }staclk;//创建一个类型;//判断栈是否为空,int empty(stack *ps){return NULL==ps->head;}// 判断栈是否为满int full(stack *ps){ return 0;}// 实现入栈push(stack *ps,int data){ //创建新节点 node *pn =(node *)malloc(sizeof(node)); pn ->data =data; pn->next=NULL; //插入新节点到头结点的位置。 pn->next=head; head =pn;}//实现遍历void travel(stack *ps){ node *p =ps->head; while(p){ printf("栈中的元素有"); p=p->next; } printf("
");}//实现出栈int pop(stack *ps){ node *p=ps->head;//准备一个指针记录要删除的节点地址 ps->head=ps->head->head;//头指针指向下一个节点int temp=p->data;单独存储要删除的节点元素;free(p);释放要删除的节点p=NULL;返回取出的节点元素return temp;}//清空栈里面所有的元素void clear(stack *ps){while(ps->head) {node*p=ps->head;//使用临时指针记录第一个节点 ps->head =ps->head->next;头指针指向下一个节点 free(p); p=NULL}}int main(){ // 定义栈并且初始化 stack stack; stack.head=NULL; return 0; }栈的用途可以找出最近一次的数据。本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134248.htm