1.1. 写一个入栈函数push(),要求输入一个字符串1234,并将结果只要理解堆栈的结构就不难了,后入先出,先入后出 。
unsigned char* CurrPoint;//指向最后入的一个元素
unsigned char* Stack_Base;//堆栈基址
unsigned char Array[] = "1234";
unsigend char ArrayLength = 4;//字符串长度
(unsigned char*) push(unsigned * array)
{
while((*array) != '\0')
{
*CurrPoint = *array;
array --;
CurrPoint ++;
}
return(CurrPonit--);
}
(unsigned char *) pop(unsigned char arrlen)
{
unsigned char i;
for(i = 0; i Stack_Base; i++ )
{
printf("%c", (*CurrPoint));
CurrPoint --;
}
printf("\r\n");
return(CurrPoint);
}
2.如何可以直接用栈的函数如pop.push,不需要自己再定义写一下用STL的stack
#include <stack>
#include <iostream>
using namespace std;
int main()
{
stack<int> s;
s.push(2);
s.push(6);
s.push(51);
cout << s.size() << " elements on stack" << endl;
cout << "Top element: " << s.top() << endl;
cout << s.size() << " elements on stack" << endl;
s.pop();
cout << s.size() << " elements on stack" << endl;
cout << "Top element: " << s.top() << endl;
return 0;
}输出:
3 elements on stack
Top element: 51
3 elements on stack
2 elements on stack
Top element: 6
3.要求写一个栈类,实现Push,Pop,GetTop 3个函数,下面为测试结果(#include
#include
#include
#define STACK_INIT_SIZE 100
#define ERROR -1;
using namespace std;
class SqStack
{
public:
SqStack();
SqStack(int size);
~SqStack();
public:
int GetTop();
void Push(int e);
void Pop();
//private:
//const int STACK_INIT_SIZE;
private:
//基指针
int *m_pBase;
//栈顶指针
int *m_pTop;
//当前分配的存储空间
int m_StackSize;
};
SqStack::SqStack()
{
m_pBase=new int[STACK_INIT_SIZE];
//m_pBase=(int*)malloc(STACK_INIT_SIZE*sizeof(int));
m_pTop=m_pBase;
m_StackSize=STACK_INIT_SIZE;
}
SqStack::SqStack(int size)
{
m_pBase=new int[size];
//m_pBase=(int*)malloc(size*sizeof(int));
m_pTop=m_pBase;
m_StackSize=size;
}
SqStack::~SqStack()
{
if(m_pTop!=m_pBase)
Pop();
}
void SqStack::Push(int e)
{
if(m_pTop-m_pBase>=m_StackSize)
{
coutreturn ;
}
*m_pTop++=e;
}
void SqStack::Pop()
{
if(m_pTop==m_pBase)
{
coutreturn ;
}
--m_pTop;
delete (m_pTop+1);
}
int SqStack::GetTop()
{
if(m_pTop==m_pBase)
{
coutreturn ERROR;
}
return *(m_pTop-1);
}
int main()
{
int num1,num2,num3;
SqStack sp;
SqStack sq(5);
cout cin>>num1>>num2>>num3;
sp.Push(num1);
sp.Push(num2);
sp.Push(num3);
sp.Pop();//栈顶出栈
cout
return 0;
}
【栈push函数怎么写】
文章插图
- 为什么打开excel表单时总会出现正在安装Microsoft excel函数?
- 函数基础知识 log函数基础知识
- 堆栈ps怎么用 ps怎么进行堆栈
- 二次函数对称轴怎么判断 如何判断二次函数的对称轴
- 明修栈道 暗度陈仓的主人公 明修栈道暗度陈仓的主人公是什么朝代
- push是什么意思 门禁push是什么意思
- 对数函数求导 指数函数求导
- 一人客栈|《一人客栈》定档,吉娜·爱丽丝担任主咖,《亲爱的客栈》简化版
- 三角函数积分公式 高次三角函数积分公式
- 直角三角形面积公式 直角三角形面积公式用三角函数