本文共 1048 字,大约阅读时间需要 3 分钟。
自己尝试写了个堆栈。
#include#include #include #include using namespace std;struct stack{ int v; //栈存储的值 stack *front; //指向前一个栈中的元素}*top=NULL; //top指针指向栈顶void push(int v) //入栈{ if(top==NULL) { top=(stack *)malloc(20); top->v=v; top->front=NULL; //栈最底部的front指针为空,这是区分是否到达栈底的标志 } else { stack *temp=(stack *)malloc(20); temp->v=v; temp->front=top; top=temp; }}void pop() //出栈{ if(top==NULL) return; else { stack *temp=top->front; free(top); top=temp; }}int size() //测量栈的大小{ int num=0; stack *p,*temp; p=top; while(p!=NULL) { num++; temp=p->front; p=temp; } return num;}bool empty() //测试栈是否为空{ return top==NULL;}void clear() //清空栈{ while(top!=NULL) { stack *temp; temp=top->front; free(top); top=temp; }}int main(){ int n,i,m; while((cin>>n)&&n) { for(i=1;i<=n;i++) { cin>>m; push(m); //测试push()函数 } cout< < v<<' '; pop(); //测试pop()函数 }cout< >m; push(m); }clear(); //测试clear()函数 if(empty()) //测试empty()函数 cout<<"YES"<
转载地址:http://kddci.baihongyu.com/