SElemType *p; p=S.base; printf(\被删除的栈顶元素为:%d\\n\ printf(\此时栈中元素为:\\n\ while(p!=S.top) { printf(\ p++; } printf(\ } break; case 0:printf(\程序结束!\\n\ break; default:printf(\输入错误\\n\ }
}while(b!=0&&b!=1); if(b==1) {
printf(\若需进行其他功能,则要重启程序,新建空栈\\n\ }
return 0; }
链式存储
头文件:
#define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0
typedef int Status; typedef int SElemType; typedef struct LNode {
SElemType data; struct LNode *next; }LNode,*LinkList;
Status Init(LinkList &SL,int num1); Status Push(LinkList &SL,int e,int &num1); Status Pop(LinkList &SL,int &e,int &num1);
Status Get(LinkList SL);
Status Clear(LinkList &SL,int &num1); void Emply(LinkList SL);
功能函数: #include\#include\#include\
Status Init(LinkList &SL,int num1) {
printf(\请输入相应个数的各个具体元素(空格隔开)\\n\ SL=(LinkList)malloc(sizeof(LNode)); scanf(\ SL->next=NULL;
for(int i=0;i LinkList s=NULL; s=(LinkList)malloc(sizeof(LNode)); scanf(\ s->next=SL; SL=s; } return OK; } Status Get(LinkList SL) { return SL->data; } Status Clear(LinkList &SL,int &num1) { if(SL==NULL)printf(\该栈本就为空\\n\ while(!SL) { LinkList p=SL; if(p->next!=NULL) { SL=p->next; free(p); } else { free(SL); } } if(SL==NULL) { num1=0; printf(\该栈已清空\\n\ } else { printf(\清空功能没有正常完成!\\n\ } return OK; } void Emply(LinkList SL) { if(SL==NULL) { printf(\该栈为空\\n\ } else { printf(\该栈不为空\\n\ } } Status Push(LinkList &SL,int e,int &num1) { LinkList s=NULL; s=(LinkList)malloc(sizeof(LNode)); s->data=e; s->next=SL; SL=s; num1++; return OK; } Status Pop(LinkList &SL,int &e,int &num1) { e=SL->data; LinkList s; s=SL; SL=SL->next; free(s); num1--; return OK; } 主函数: #include\#include\#include\ int main() { printf(\是否建立链栈?\\n\ printf(\、建立\\n\ printf(\、不建立并退出程序\\n\ int a;//选择建立 scanf(\ switch(a) { case 1: { LinkList SL=NULL; int num;//用户确定的元素个数 printf(\请确定元素个数\\n\ scanf(\ Init(SL,num); printf(\此时的链栈中元素为(从栈顶到栈底):\\n\ LinkList b=SL; for(int i=0;i scanf(\ switch(x) { case 1: { printf(\请输入新的栈顶元素\\n\ int data;//用户输入的新的栈顶元素 scanf(\ Push(SL,data,num); printf(\此时的链栈中元素为(从栈顶到栈底):\\n\ LinkList b=SL; for(int i=0;i printf(\此时栈中的元素有(从栈顶到栈底):\\n\ LinkList b=SL; for(int i=0;i