数据结构学习记录_2019.02.22

  • 数组的表示的方法:

(1)结构数组存储非零项(二元数组)

(2)链表存储非零项:每个结点包含系数和指数两个数据域以及一个指针域,coef-expon-link

  • 线性表(List):同类型数据元素构成的有序序列的线性结构;
  • 关于typedef:

   typedef  int  elemtype;------为某一些类型自定义名称,即为int类型起名字为elemtype;

typedef struct LNode *List;//为LNode结构起别名为List(且List为指针类型); 
struct LNode//定义结构类型LNode; 
{
    ElementType Data[MAXSIZE];
    int Last;
}
struct LNode L;//由结构类型LNode 来定义变量L; 
List PtrL;       //定义指针类型的结构变量PtrL;
访问结构中元素:L.Data[i] 访问指针结构中元素:PtrL->Data[i] L=(linklist)malloc(sizeof(struct lnode));

为你的结点L动态分配内存
你前面结构体是否这样定义的
typedef struct lnode
{ ...数据项
}*linklist;
函数的原型extern void *malloc(unsigned int num_bytes)
(linklist)是你定义的这种struct lnode这种类型的指针,也可以写成(struct lnode*)malloc(...)
因为如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL
其中sizeof是取你定义的结构体取其总的字节数,即malloc后的括号内是要分内内存空间的大小
用sizeof函数获取
而整个分配的返回值是你定义结点*L的指针 也就是L

  • free(s):释放s节点所占用的空间;
  • 线性表的链式存储:即把逻辑相邻的元素通过“链”建立起逻辑关系,而不要求物理上相邻;(插入、删除不需要修改数据元素,只需要修改链)
  • 广义表(Generalized List):线性表的推广,多重链表,表中元素不仅可以是单元素,也可以是另一个广义表;(例子:二元多项式)
  • 多重链表:链表中的指针可能同时隶属于多个链,结点的指针域有多个;(但有两个指针域的链表不一定是多重链表,比如双向链表不是多重链表)
  • 例:二位数组的表示

(1)用二位数组表示:缺点:数组的大小要提前确定,稀疏矩阵会造成大量的存储空间浪费;

转载于:https://www.cnblogs.com/Bran-don/p/10419397.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值