?? linearstack1.cpp
字號:
//順序堆棧的實現linearStack1.cpp
#include<stdlib.h>
#include "linearStack1.h"
//創建有序或無序棧
void Stack::CreateStack(int n,int m,int mark)
{ElemType x,a[LEN/2];
int i,j;
for(i=0;i<m;i++) a[i]=rand()%100;
for(i=0;i<m-1;i++)
{int k=i;
for(j=i+1;j<m;j++)
if(a[k]>a[j]) k=j;
if(k!=i)
{x=a[k];a[k]=a[i];a[i]=x;}}
for(i=0;i<m;i++)
if(mark==1) Push(a[m-1-i]);//升序
else
if(mark==-1) Push(a[i]);//降序
else Push(rand()%100);//無序
}
//清空棧
void Stack::ClearStack() {top=0;}
//檢查棧是否為空
bool Stack::StackEmpty() {return top==0;}
//讀取棧頂元素
ElemType Stack::Peek()
{if(top==0) {cerr<<"棧為空!"<<endl;
exit(1);}
return stack[top];
}
//向棧中插入元素
void Stack::Push(const ElemType& item,int m)
{if(top==m) {
cerr<<"棧已滿!"<<endl;exit(1);}
top++;
stack[top]=item;
}
//從棧中刪除元素
ElemType Stack::Pop()
{if(top==0) {
cerr<<"棧為空!"<<endl;exit(1);}
top--;
return stack[top+1];
}
//檢查棧是否已滿
bool Stack::StackFull(int m)
{return top==m;}
//棧的輸出
void Stack::StackPrint(int m)
{for(int i=0;i<m;i++)
cout<<setw(3)<<Pop();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -