链栈
#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
typedef struct stackLink{
datatype data;
struct stackLink *next;
}Stack,*Psnode;
typedef struct{
Psnode top;
int length;
}Linkstack;
void init(Linkstack *q){
q->top = (Psnode)malloc(sizeof(Stack));
q->top = NULL;
q->length = 0;
}
void Push(Linkstack *q,datatype value){
Psnode news;
news = (Psnode)malloc(sizeof(Stack));
news->data = value;
news->next = q->top;
q->top = news;
q->length++;
}
datatype Pop(Linkstack *q){
Psnode p;
datatype x;
p = q->top;
if(p == NULL){
printf("链栈为空:");
}else{
printf("%d ",p->data);
x = p->data;
q->top = p->next;
q->length --;
free(p);
}
return x;
}
void Show(Linkstack *q){
Psnode p;
p = q->top;
printf("链栈为:");
if(p == NULL){
printf("空");
}else{
for(;p != NULL;p = p->next) printf("%d ",p->data);
}
printf("\n");
}
void Pankong(Linkstack *q){
if(q->top == NULL){
printf("链栈为空");
}else{
printf("链栈不为空");
}
}
datatype Put(Linkstack *q){
if(q->top == NULL){
printf("链栈为空");
}
return q->top->data;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-51902.html