#include <iostream>
using namespace std;
typedef int ElemType;
typedef struct StackNode {
ElemType data;
StackNode* next;
}StackNode,*LinkStack;
void init(LinkStack &S) {
S = NULL;
}
void select(LinkStack &S) {
cout << "所有元素如下:\n";
while (S != NULL) {
cout <<S->data<<"\n" ;
S = S->next;
}
}
void insert(LinkStack &S) {//压栈
cout << "输入元素值:";
int i;
cin >> i;
LinkStack p = (LinkStack)malloc(sizeof(StackNode));
p->data = i;
p->next = S;
S = p;//栈顶指针置为p
}
void remove(LinkStack &S) {//出栈
if (S == NULL) {
cout << "栈为空\n";
}
else {
ElemType i = S->data;
LinkStack q = S;
S = S->next;
delete q;
cout << "元素" << i << "被删除\n";
}
}
void update(LinkStack &S) {
}
int main() {
LinkStack S=NULL;//S是栈顶指针
init(S);
while (true)
{
cout << "\t\t请选择需要进行的操作\n0.退出\t1.插入\t2.查询\t3.删除\t4.修改\t\n";
int choice;
cin >> choice;
if (choice == 0)
{
break;
}
switch (choice)
{
case 1:insert(S); break;
case 2:select(S); break;
case 3:remove(S); break;
case 4:update(S); break;
default:break;
}
}
}
数据结构(c语言)链栈实现
最新推荐文章于 2022-08-11 15:13:43 发布