标签:栈链
数据结构:
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
操作系统:
由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放。
栈链模板代码:
#define TRUE 1 #define FALSE 0 typedef struct node { StackElementType data; struct node *next; }LinkStackNode; typedef LinkStackNode *LinkStack; /*进栈操作。*/ int Push(LinkStack top, StackElementType x)/* 将数据元素x压入栈top中 */ { LinkStackNode *temp; temp=(LinkStackNode *)malloc(sizeof(LinkStackNode)); if(temp==NULL) return(FALSE); /* 申请空间失败 */ temp->data=x; temp->next=top->next; top->next=temp; /* 修改当前栈顶指针 */ return(TRUE); } /*出栈操作。*/ int Pop(LinkStack top, StackElementType *x) { /* 将栈top的栈顶元素弹出,放到x所指的存储空间中 */ LinkStackNode * temp; temp=top->next; if(temp==NULL) /*栈为空*/ return(FALSE); top->next=temp->next; *x=temp->data; free(temp); /* 释放存储空间 */ return(TRUE); }
标签:栈链
原文地址:http://blog.csdn.net/u014492609/article/details/39582547