📄 linkstack.h
字号:
//栈的链式存贮结构
typedef struct stacknode
{
int data;
struct stacknode *next;
}stacknode,*linkstack;
//出错信息处理函数
void lerrormessage(char *s)
{
cout<<s<<endl;
}
//初始化链式表(逆序创建链式表)
void lcreatstack(linkstack &top,int n)
{
cout<<"输入元素:";
linkstack p;
top=NULL;
for(int i=n;i>0;i--)
{
p=new stacknode;
cin>>p->data;
p->next=top;
top=p;
}
cout<<"创建的链式栈内元素是:";
for(i=1;i<=n;i++)
{
cout<<p->data<<'\t';
p=p->next;
}
}
//求长度
int llengthstack(linkstack top)
{
linkstack p;
p=top;
int k=0;
while(p)
{
k++;
p=p->next;
}
return k;
}
//获取栈顶元素
int ltopelemstack(linkstack top)
{
return top->data;
}
//压栈
void lpushstack(linkstack &top,int e)
{
linkstack p,q;
p=new stacknode;
p->data=e;
p->next=top;
top=p;
for(int i=0;i<llengthstack(top);i++)
{
cout<<p->data<<'\t';
p=p->next;
}
}
//出栈
int lpopstack(linkstack &top)
{
linkstack p;
if(top==NULL) errormessage("栈为空!");
else
{
p=top;
top=top->next;
return p->data;
}
delete p;
}
//判空
void lchargestack(linkstack top)
{
if(top==NULL)
errormessage("栈为空!");
else
errormessage("栈非空!");
}
//置空
void lemptystack(linkstack &top)
{
linkstack p;
for(int i=0;i<llengthstack(top);i++)
{
p=top;
p->data=0;
p=p->next;
}
for(i=0;i<llengthstack(top);i++)
{
p=top;
cout<<p->data<<'\t';
p=p->next;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -