线性表总结

2018-12-17  本文已影响0人  点一下我的id

线性表总结

顺序表类型定义

#define  MAXSIZE 100     //最大长度
typedef  struct {
  ElemType  *elem;     //指向数据元素的基地址
  int  length;          //线性表的当前长度                                                      
 }SqList;

#define MAXSIZE 10000   //图书表可能达到的最大长度 
typedef struct          //图书信息定义
{ 
   char no[20];         //图书ISBN
   char name[50];       //图书名字
   float price;         //图书价格
}Book; 
typedef struct
{ 
   Book *elem;          //存储空间的基地址 (数组名做首地址)
   int length;          //图书表中当前图书个数 
}SqList;                //图书表的顺序存储结构类型为SqList

单链表的存储结构定义

typedef struct LNode{
     ElemType data;        //数据域
     struct LNode  *next;   //指针域
}LNode,*LinkList;  
// *LinkList为Lnode类型的指针,LNode *p <->LinkList p 

#define MAXSIZE 10000   //图书表可能达到的最大长度 
typedef struct          //图书信息定义
{ 
   char no[20];         //图书ISBN
   char name[50];       //图书名字
   float price;         //图书价格
}Book; 
typedef struct LNode{
     Book data;         //图书数据
     struct LNode *next;//指针域
}LNode,*LinkList;       //图书表的链表存储结构类型为LinkList         


链表的结构解析

单链表实际上完成两个操作

1)构造一个结构LNode

struct LNode{
     ElemType data;         //数据域
     struct LNode  *next;   //指针域
}
// *LinkList为Lnode类型的指针,LNode *p <->LinkList p 

2)typedef为这个新的结构起了一个名字,叫LNode。

typedef struct LNode LNode;

因此,LNode(后)实际上相当于struct LNode(前),我们可以使用LNode(后) varName来定义变量。

struct LNode
{
    ElemType data;  //数据域
    struct LNode *next;//数据域
};
// *LinkList为Lnode类型的指针,LNode *p <->LinkList p 
typedef struct LNode LNode;
typedef struct LNode* LinkList;
上一篇 下一篇

猜你喜欢

热点阅读