首页 > 其他分享 >【C语言】数据结构-栈(顺序表实现)

【C语言】数据结构-栈(顺序表实现)

时间:2024-09-02 16:25:03浏览次数:12  
标签:ps 顺序 top C语言 assert void STDataType 数据结构 Stack



文章目录

  • 前言
  • 1.什么是栈
  • 2.栈的实现
  • 3.敲代码!
  • 3.1头文件
  • 3.2函数实现
  • 4.知识巩固,来道OJ!
  • 结语


前言

在之前的数据结构学习中,我们学习了顺序表、链表这两种结构

  • 顺序表:博客链接1
  • 单链表:博客链接2
  • 链表OJ:博客链接3

除了单链表以外,还有一个结构,是双向带头循环链表。这个链表的形式如下

  • 头节点的prev指向尾部节点
  • 尾节点的next指向头节点,构成循环

【C语言】数据结构-栈(顺序表实现)_数据结构

别看它的形式有些复杂,实际代码的实现,比单链表还简单

因为head->prev指向了尾节点,所以不需要找尾。尾删的时候也不需要遍历找尾节点的前一位,因为尾节点的prev就存放了前一位的地址。

所以这里就偷懒不写博客了!反正也没啥人看

标签:ps,顺序,top,C语言,assert,void,STDataType,数据结构,Stack
From: https://blog.51cto.com/musnow/11898955

相关文章

  • 【方法分享】准大学生如何自学C语言?
    准大学生如何自学C语言文章目录准大学生如何自学C语言一、找寻一个优质教学视频二、使用优质编译器三、安排一个电子笔记需不需要一个ipad来辅助学习?四、除工具以外的学习方法1.专心致志,不要让其他东西分心2.多练习,多练习,多练习3.复习!结语虽说现在已经接近我们最长的且无忧无虑的......
  • redis-数据结构数据类型
    redis常见数据类型作者:xxxRedis共有5种基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。数据类型底层数据结构应用场景StringSDS它可以存储任何数据-字符串、整数、浮点值、JPEG图像、序列化的Ruby对象或您希望它承载的任何其他......
  • 45. 文件的顺序读写
    1按照字符读写文件fgetc、fputc1.1.写文件#include<stdio.h>intfputc(intch,FILE*stream);功能:将ch转换为unsignedchar后写入stream指定的文件中参数:ch:需要写入文件的字符stream:文件指针返回值:成功:成功写入文件的字符失败:返回-1charbuf[]="MynameisTao.";int......
  • C语言函数递归(含扫雷进阶思路)
    文章目录一、什么是递归二、递归的使用思路和限制条件1.递归的使用思路2.递归的限制条件三、递归的举例举例1:求n的阶乘2.举例2:顺序打印⼀个整数的每⼀位四、递归与迭代对比五、递归与迭代对比举例七、扫雷进阶思路一、什么是递归  递归是学习C语⾔函数绕不开的......
  • 基于C语言的选择排序算法
    一、选择排序算法的基本原理        选择排序算法是一种简单直观的排序算法。其基本原理为:        首先,将待排序的数组划分为已排序和未排序两部分。初始时,已排序部分为空,未排序部分为整个数组。        在每一轮排序中,从未排序部分找出最小(或最大)......
  • 基于C语言的归并排序算法
    一、归并排序的基本概念        归并排序(MergeSort)是一种基于分治法思想的高效稳定排序算法。其基本原理是将一个待排序的数组不断地分割成较小的子数组,直到每个子数组只包含一个元素,此时每个子数组都被认为是有序的。然后,再将这些有序的子数组合并成一个更大的有序......
  • 数据结构——队列
    文章目录队列基本概念顺序存储的队列:循环队列循环队列的基本操作链式存储的队列:链式队列链式队列的基本操作队列基本概念队列是最常见的概念,日常生活经常需要排队,仔细观察队列会发现,队列是一种逻辑结构,是一种特殊的线性表。特殊在:只能在固定的两端操作线性表只......
  • 介绍数据结构和数据类型这两个概念及其区别。
    数据结构数据结构(datastructure)是相互之间存在一种或多种特定关系的数据元素的集合。一个数据结构一般包含数据逻辑结构、存储结构和数据运算三个方面。简单来说就是数据的逻辑或物理存储方式,以便可以高效地访问和修改数据。数据类型数据类型(datatype)是一个值的集合和......
  • 模拟实现strlen函数(C语言)
    #include<stdio.h>//strlen实现intStrlen(chararr[]){ inti=0; intnum=0;//长度的数值 for(i=0;arr[i]!='\0';i++)//当arr[i]不为\0时继续 { num++;//长度增加 } returnnum;//返回长度的值}intmain(){ //创建一个数组 chararr[100]=......
  • C语言中的#和##
    在C语言中,#和##是预处理器运算符,具有特定的功能。一、#运算符(字符串化运算符)概念:#运算符被称为字符串化运算符。它的作用是将其后面的参数转换为字符串常量。作用:在宏定义中,#可以将传入的参数转换为字符串,方便输出调试信息或者构建特定的字符串。代码例子:#incl......