【Dongle】【数据结构】Linklist L、Linklist *L、Node *p 和Node p

数据结构 专栏收录该内容
0 篇文章 0 订阅

       最近在做数据结构导论试题的时候无意中发现答案中有用到这些东西的Linklist L、Linklist *L、Node *p 和Node p,不过不清楚都具体指什么,故而从网上查找了一番:

       先定义一个单链表结构体:

typedef struct node 
{ 
      DataType  data;   //数据域
      struct  node * next;   //指针域
}Node,* LinkList;   //Node是链表节点的类型
//sturct node类型定义为Node,指针类型定义为LinkList(一般表示链表类型,实质是头指针类型)


Linklist L

        定义一个单链表类型的单链表L;

        L可以作为指向定义的node结构体的指针;


Linklist *L

一般,用头指针表示链表类,即实质是该链表的头指针类型

        L是指向定义的Node结构体指针的指针,所以(*L)是指向Node结构体的指针,可以用->运算符来访问结构体成员,即(*L)->elem,当然,(**L)就是Node型结构体了,所以可以用点运算符来访问结构体成员,即(**L).elem;

       在链表操作中,我们常常要用链表变量作物函数的参数,这时,用LinkListL还是LinkList *L就很值得考虑深究了,一个用不好,函数就会出现逻辑错误,其准则是:

  • 如果函数会改变指针L的值,而你希望函数结束调用后保存L的值,那你就要用LinkList*L,这样,向函数传递的就是指针的地址,结束调用后,自然就可以去改变指针的值;
  • 而如果函数只会修改指针所指向的内容,而不会更改指针的值,那么用LinkListL就行了;

Node *p

        定义了一个node类型的结构体指针p,p是工作指针(初始时p指向)

Node p

        在网上到时没有查到Node p的使用,不过倒是查到了P=new node()的使用,也表示node类型的指针。

Node区别

       node*p程序结束后会自动删除;

       new node不会自动删除,会用到delete函数删除。



相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值