线性表、链表、栈和队列的初始化

简介: 线性表、链表、栈和队列的初始化

线性表:具有相同特性数据元素的一个有限序列

存储结构:顺序存储(顺序表)和链式存储(链表)

顺序表可以随机访问,存储分配预先进行,一旦分配好在操作过程中始终不变
链表不支持随机访问,支持动态空间的存储分配
顺序表做插入的时候要移动多个元素,链表中插入元素无需移动元素

下面时他们的初始化操作

#define maxsize 100
typedef struct
{
  int data[maxsize];
  int length;
}sqlist;
//单链表的定义
typedef struct node
{
  int data;//数据域
  struct node *next;//存放后继结点的指针
}node;
//双链表的定义
typedef struct dnode
{
  int data;
  struct dnode *next;//后继结点指针
  struct dnode *prior;//前驱结点指针
}dnode;

带头结点的循环单链表head->next=null为空
不带头结点的循环单链表head=null为空
循环双链表为空时head->next=head->prior=head

栈:一种只能在一端进行插入和删除操作的线性表

栈顶:允许插入(入栈)和删除(出栈)的一端

先进后出的特点

栈的初始化

//顺序栈的定义
typedef struct
{
  int data[maxsize];
  int top;//栈顶指针
}sqstack;
//链式栈的定义
typedef struct LNode
{
  int data;数据域
  struct LNode *next;指针域
}LNode;

有些书规定栈空时st.top==-1,栈满时st.top=maxsize-1;
top==0为空的话会大大浪费一个元素的空间大小
顺序栈的非法状态(上溢和下溢)
上溢:栈满还继续入栈
下溢:栈空还继续出栈

队列:仅在表的一端进行插入(队尾),在另一端进行删除(队头)的线性表

进队就是插入元素,出队删除元素
先进先出

下面时队列的初始化

//顺序队列的定义
typedef struct
{
  int data[maxsize];
  int front;//队首指针
  int rear;//队尾指针
}sqQueue;
//链队的定义
typedef struct Qnode
{
  int data;数据域
  struct Qnode *next;指针域
}Qnode;

本人的复习笔记,喜欢就点个赞吧!

目录
相关文章
|
3月前
|
存储 算法 搜索推荐
探索常见数据结构:数组、链表、栈、队列、树和图
探索常见数据结构:数组、链表、栈、队列、树和图
131 64
|
2月前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
76 5
|
2月前
|
算法
数据结构之购物车系统(链表和栈)
本文介绍了基于链表和栈的购物车系统的设计与实现。该系统通过命令行界面提供商品管理、购物车查看、结算等功能,支持用户便捷地管理购物清单。核心代码定义了商品、购物车商品节点和购物车的数据结构,并实现了添加、删除商品、查看购物车内容及结算等操作。算法分析显示,系统在处理小规模购物车时表现良好,但在大规模购物车操作下可能存在性能瓶颈。
57 0
|
7月前
|
算法
数据结构和算法学习记录——线性表之双向链表(上)-结点类型定义、初始化函数、创建新结点函数、尾插函数、打印函数、尾删函数
数据结构和算法学习记录——线性表之双向链表(上)-结点类型定义、初始化函数、创建新结点函数、尾插函数、打印函数、尾删函数
58 0
|
7月前
|
数据安全/隐私保护
第2章 栈、队列、链表
第2章 栈、队列、链表
|
7月前
栈和链表的区分
栈和链表的区分
29 0
|
7月前
|
算法
数据结构和算法学习记录——线性表之双向链表(下)-头插函数、头删函数、查找函数、pos位置之前插入结点、pos位置删除结点及其复用、销毁链表函数
数据结构和算法学习记录——线性表之双向链表(下)-头插函数、头删函数、查找函数、pos位置之前插入结点、pos位置删除结点及其复用、销毁链表函数
34 0
|
7月前
|
算法
数据结构和算法学习记录——线性表之单链表(下)-头插函数、尾删函数、头删函数、查找函数、pos位置插入&删除数据、单链表销毁
数据结构和算法学习记录——线性表之单链表(下)-头插函数、尾删函数、头删函数、查找函数、pos位置插入&删除数据、单链表销毁
67 0
|
7月前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
|
7月前
|
存储 SQL 算法
LeetCode 题目 86:分隔链表
LeetCode 题目 86:分隔链表

热门文章

最新文章

下一篇
开通oss服务