#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct qnode)
#define MAXSIZE 10
#define ADD 1
struct qnode
{
char data;
struct qnode *next;
};
struct Q
{
struct qnode *top;
struct qnode *base;
};
char creat()
{
struct Q s;
s.base=s.top=(struct qnode *)malloc(LEN);
s.top->next=NULL;
if(!s.top){printf("内存分配失败!");}
return s.top;
}
char input()
{
char ch;
ch=getchar();
while(ch!='\n')
{
ch=getchar();
}
return 1;
}
char Output()
{
printf("栈中的数据:\n");
do
{
printf("%c",*--Q.top);
}while(Q.top!=Q.base);
putchar(10);
return 1;
}
char dele()
{
qnode *p;
p=Q.top->next;
Q.top->next=p->next;
printf("被删除的节点是:");
printf("%c",p);
}
char insert()
{
}
char jugde()
{
struct Q a;
if(a.top==a.base) exit(0);
else Output();
return 1;
}
int main()
{
creat();
printf("请输入字符数据:\n");
input();
jugde();
dele();
insert();
return 0;
}
能否帮我改一下?要求是建立一个链栈实现入栈、出栈,删除top->next,再插入一个数据到栈中。
满意的话有追加分~
1、栈(stack)又名堆栈,它是一种运算受限的线性表。
其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
2、例程:
太复杂了,而且调试有error