本文共 722 字,大约阅读时间需要 2 分钟。
1.栈的定义
栈只能通过访问它的一端来实现数据存储和检索的一种线性数据结构,栈又称为后进先出的线性表,在栈中进行插入和删除的一端称为栈顶,另一端称为栈底,不含数据元素的栈称为空栈。
2.栈的基本运算
栈的链式存储:用链表作为存储结构的栈称为链栈。由于栈中元素的插入和删除仅在栈顶一端进行,因此不必另外设置头指针,链表的头指针就是栈顶指针。
①入栈
typedef struct Node{ Element data; Node *next;}Node,*Stack;//s栈顶指针//e入栈的元素void Push(Stack s,Element e){ Stack newNode = (Stack)malloc(sizeof(Stack)); newNode->data = e; newNode->next = s->next; s->next = newNode;}
②出栈
//s为栈顶指针Stack Pop(Stack s){ if(s->next) { Stack p = s->next; s->next = p->next; return p; }}
③判栈空
bool isEmpty(Stack s){ if(s->next) return false; else return true;}
④读栈顶元素
Element Top(Stack s){ if(s->next) return s->data; else return 0;}
转载地址:http://lcgv.baihongyu.com/