(第三章)线性表(linear)

1.Linear是一种线性结构

1)有且仅有一个节点没有前驱节点(前件);

2)有且仅有一个节点没有后继节点(后件);

3)其它节点,有且仅有一个后继节点(后件),也仅有一个前驱节点(前件);

4)对线性表所做的任何操作都必须保证上述3点不被破坏。

​​​​​​​2.对于线性表的实现:

                                    

这里用线性存储结构来实现线性表。

基本思想:将线性表分为两个大部分:1)控制头;2)存储空间(线性表核心);

 

控制头部分应至少具备如下属性:

扫描二维码关注公众号,回复: 3797892 查看本文章

    1)最大空间容量;

    2)当前存储的有效数据个数;

    3)指向存储空间的指针。

用户使用时的类型广泛性,应该由用户自行决定类型问题(线性表中的元素类型问题)。

 

    所形成的线性表,如图所示:

                                      

应该屏蔽用户对data、maxRoom和count的操作,或者说,对于用户而言,data、maxRoom、count以及线性表空间都是“透明”的,看不见的。

用户只能通过“接口”(也就是函数)实现对线性表的操作。

//传值

void initLinear(LINEAR *linear, int maxRoom){
    linear = (LINEAR *)malloc(sizeof(LINEAR));
}

void main(void){
    LINEAR *poly1 = NULL;
    LINEAR *poly2 = NULL;

    initLinear(poly1, 30);   //传值
}

//传址

void initLinear(LINEAR **linear, int maxRoom){
    linear = (LINEAR *)malloc(sizeof(LINEAR));
}

void main(void){
    LINEAR *poly1 = NULL;
    LINEAR *poly2 = NULL;

    initLinear(&poly1, 30);   //传址
}

                                        

猜你喜欢

转载自blog.csdn.net/weixin_42072280/article/details/83315999