//用单链表实现栈
#include<stdio.h>
#include<stdlib.h>
typedef struct NODE{
char key;struct NODE* next;
}NODE;
NODE *L=NULL;
void push(NODE* p)
{//插入的结点成为新的链表头
p->next=L;L=p;
}
void pop(void)
{//删除头结点
if(!L) puts("stack underflow!");
else{NODE*p=L;L=L->next;free(p);}
}
char top(void)//头结点值
{
return L->key;
}
NODE* createnode(char key)
{
NODE*p=(NODE*)malloc(sizeof(NODE));
if(!p){
puts("memory exhausted.");exit(1);
}
p->key=key;
return p;
}
void traverse()
{
NODE*p;
for(p=L;p;p=p->next)
putchar(p->key);
putchar('\n');
}
int main(void)
{
push(createnode('a'));
push(createnode('z'));
push(createnode('d'));
traverse();
putchar(top());putchar('\n');
pop();
traverse();
push(createnode('t'));
push(createnode('r'));
push(createnode('s'));
traverse();
putchar(top());putchar('\n');
pop();pop();pop();pop();
putchar(top());putchar('\n');
pop();
traverse();
return 0;
}
10.2-2 用单链表实现栈
最新推荐文章于 2020-09-15 15:02:33 发布