数据结构栈-C语言实现链表

最近复习数据结构,遇到一道算法题,从尾打印链表,使用的是入栈操作,因为栈属于“先进后出”,正好符合这个题目;借此也把栈复习一下;

1.什么是栈?

答:保存局部变量。栈上的内容旨在函数的范围内存在,当函数运行结束,这些内容也会自动销毁。其特点是效率高,但空间大小有限。

** 栈是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶,相应地表头端称为栈底,不含元素的空表称为空栈。**

(手残档 不会画图 凑合看,求推荐画图软件!!!!!!!)
在这里插入图片描述

2. 栈的表示和实现

顺序栈;即栈的顺序存储结构是利用一组地址连续的存储单元依次存放来自栈底到栈顶的数据元素,同时附设指针

3.代码如下:

定义结构体如下:

/*结构体定义    
s_Data 栈中数据
s_Top 指针指向栈顶
s_Bottom 指针指向栈底
s_Next 指针指向上一节点
*/
typedef struct StackStur
{
   
    int s_Data;
    struct StackStur* s_Top;
	struct StackStur* s_Bottom;
	struct StackStur* s_Next;

}NonPointer,*Pointer;

1.创建一个空栈

/*创建一个空栈*/
void CreateStack(Pointer variable)
{
   
	variable->s_Bottom=(Pointer)malloc(sizeof(NonPointer));
    if(NULL==variable->s_Bottom)    //判断内存是否分配成功
	{
   
		printf("Error in allocating memory!\r\n")
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值