栈-C语言及Python实现

栈-C语言及Python实现

  • 栈是数据结构中最为基础的一种数据结构,也是学习数据结构时,在前面就会接触到它,比较基础,也比较简单,同样也比较重要。

  • 栈是一种数据结构,先进后出,就如同球桶一样,最先放进去的球,只能最后拿出来,最后放进去的球,可以第一个被拿出来。

  • 对栈的操作一般有:入栈、出栈、获得栈顶元素、判断栈是否为空、清空栈等。

  • C语言中实现栈可以使用数组以及链表来实现, 但是数组局限性比较大,所以这里使用链表实现。

  • 实现过程可以使用多文件,也可以使用单个文件,这里使用单个文件。

#include<stdio.h>

typedef struct Stack
{
	int data;
	struct Stack* next;
}Stack;

Stack* CreateStack()    //创建栈
{
	Stack* stack = (Stack*)malloc(sizeof(Stack));
	stack->next = NULL;
	return stack;

}
void push_stack(Stack* stack,int data) //入栈
{
	Stack* news = (Stack*)malloc(sizeof(Stack));
	
	news->data = data;
	news->next = stack->next;
	stack->next = news;

	return;
	
}
void pop_stack(Stack* stack)    //出栈
{
	Stack* temp;
	if (stack->next != NULL)
	{
		temp = stack->next;
		stack->next = temp->next;
	}
}
int get_top(Stack* stack)    //得到栈顶元素
{
	if (stack->next != NULL)
		return stack->next->data;
	return -1;
}
int empty(Stack* stack)   //判断栈是否为空
{
	if (stack->next != NULL)
		return 0;
	return 1;
}
void to_empty(Stack* stack)   //清空栈
{
	Stack* temp;
	while (stack->next != NULL)
	{
		temp = stack->next;
		stack->next = temp->next;
	}
}


下面是Python实现的栈,代码和C语言的差不多,只是换个写代码的风格,而且由于python列表的特性,代码简单许多。

class stack:
	def __init__(self):
		self.stack = []
		self.right = 0
	def push_stack(self,data):
		self.stack.append(data)
		self.right+=1
		return self.stack
	def pop_stack(self):
		self.stack.pop()
		self.right -=1
		return self.stack
	def get_top(self):
		return self.stack[self.right-1]
	def is_empty(self):
		if self.right == 0:
			return True
		else:
			return False
		

在这里插入图片描述
在这里插入图片描述
代码有不足的地方,欢迎在下方留言 !

Thank for your reading !!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值