数据结构常用的结构体定义

一.顺序表结构体定义:

typedef struct
{
    int data[maxsize];
    int length; 
}Sqlist;

二.单链表结构体定义:

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

三.双链表结构体定义:
typedef struct DLNode
{
    int data;
    struct DLNode *prior;
    struct DLNode *next;
}DLNode;

四.顺序栈结构体定义: 
typedef struct
{
    int data[maxsize];
    int top;
}SqStack;

五.链栈结构体定义:
typedef struct LNode
{
    int data;
    struct LNode *next;
 } LNode;

 六.顺序队结构体定义:
 typedef struct
 {
     int data[maxsize];
     int front;
     int rear;
  } SqQueue;
  
 七. 链队结构体定义:
  1)队结点类型定义
  typedef struct QNode
  {
      int data;
      struct QNode *next;
   } QNode;
  2)链队类型定义
  typedef struct
  {
      QNode *front;
      QNode *rear;
   } LianQueue;

八.二叉树结点类型的定义
typedef struct BTNode
{
    char data;
    struct BTNode *lchild;
    struct BTNode *rchild;
 } BTNode;
 
 九.树的存储结构
 1》双亲表示法
 typedef struct
 {
     int data;
     int parent;    
 }PTNode;
 typedef struct
 {
     PTNode p[maxsize];
     int n;
 }PTree;
 2》孩子表示法
 typedef struct ArcNode
 {
     int child;
     struct ArcNode *next;
  } ArcNode;
  typedef struct
  {
      int data;
      ArcNode *firstchild;
  }VNode;
  typedef struct 
  {
      VNode v[maxsize];
      int n;
  }CTree;
  3》孩子兄弟表示法
  typedef struct CBNode
  {
      int data;
      struct CBNode *firstchild;
      struct CBNode *nextbrother;
   } CBNode;

十.邻接矩阵的结构体类型定义
typedef struct
{
    int no;//顶点编号
    char info;//顶点其他信息 
 } VertexType;
 typedef struct
 {
     int edge[maxsize][maxsize];//边的权值
    int n;//顶点个数
    int e;//边数
    VextexType vex[maxsize]; 
 }MGraph;


 十一.邻接表的结构体定义
 typedef struct ArcNode
 {//边、弧
    int  adjvex;//该边所指向的结点的编号
    struct ArcNode *next;//下一条边的指针
    int info;//边的信息 
  } ArcNode;
  typedef struct 
  {//顶点
     char data;//顶点信息
     ArcNode *first;//指向第一条边的指针 
   } VNode;
   typedef struct
   {//用邻接表存储的图
     VNode adjlist[maxsize];//邻接表 
     int n;//顶点数
     int e;//边数 
    } AGraph; 

  • 14
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
结构体数组是一种常用数据结构,它可以同时存储多个同类型的数据,并且每个元素可以包含多个属性。结构体数组的结构通常由以下几个部分组成: 1. 结构体定义:定义结构体的属性和数据类型,包括结构体名称和各个属性的名称和数据类型。 2. 数组定义:定义结构体数组的名称和容量,即数组中可以存储的元素个数。 3. 元素初始化:对结构体数组中的每个元素进行初始化赋值,可以手动赋值或者通过输入等方式实现。 4. 元素访问:对结构体数组中的每个元素进行访问和操作,可以通过下标、指针等方式实现。 下面是一个结构体数组的示例代码: ``` #include <stdio.h> struct student { char name[20]; int age; char gender; }; int main() { struct student stu[3] = { {"Tom", 18, 'M'}, {"Alice", 19, 'F'}, {"Bob", 20, 'M'} }; for (int i = 0; i < 3; i++) { printf("Name: %s, Age: %d, Gender: %c\n", stu[i].name, stu[i].age, stu[i].gender); } return 0; } ``` 以上代码定义了一个名为 `student` 的结构体,包含了学生的姓名、年龄和性别等属性。然后定义了一个包含 3 个元素的结构体数组 `stu`,每个元素代表一个学生,进行了初始化赋值。最后通过循环访问了每个元素,并打印了学生的信息。 结构体数组是一种简单而强大的数据结构,可以方便地存储和操作多个同类型的数据,是编程中经常用到的一种数据结构

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值