数据结构-链栈(C语言)

本文介绍如何使用C语言创建并操作链栈数据结构,包括链栈的初始化、入栈、出栈等操作。

ChainStack.h

typedef struct Node{
	DATA data;
	struct Node *next;
}ChainStack;
//////有头结点的链栈 /////////

ChainStack *CreatChainStack()//构建栈的头结点,返回该结点指针 
{
	ChainStack *top;
	top=malloc(sizeof(struct Node));//头结点 
	top->next=NULL;//初始化 空栈 
	return top;
}

int ChainStackIsEmpty(ChainStack *top)// 判断栈是否为空,空返回1                                                                  
{
	return(top->next==NULL);
}

void ChainStackPush(ChainStack *top,DATA data)//入栈 
{
	ChainStack *node;
	if(!(node=malloc(sizeof(struct Node)))){
		printf("分配空间失败!\n");
		exit(0);
	}
	node->data=data;
	node->next=top->next;
	top->next=node;
}

DATA ChainStackPop(ChainStack *top)//出栈 
{
	if(ChainStackIsEmpty(top))
	{
		printf("栈为空!\n");
		//return NULL;  error:incompatible types when returning type 'void *' but 'DATA' was expected. //NULL空指针 
		exit(0);
	}else{
		DATA data;
		struct Node *node1;
		node1=top->next;//指向栈顶结点 
		data=node1->data;
		top-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值