zoukankan      html  css  js  c++  java
  • 【数据结构】某些难理解点

     1 typedef char ListData;
     2 //表示以后可以用ListData来代替char类型
     3 
     4 typedef struct node{     //此处node,只在结构体中出现和使用
     5      ListData data;
     6      struct node *link;
     7 }ListNode;          //表示将整个结构体命名为ListNode,也就是说现在ListNode就是一种像int、char等的数据类型了,可以用它来定义别的节点
     8 
     9 typedef ListNode *LinkList;      //此处,表示以后可以用*LinkList来代替ListNode类型,其中LinkList表示的是指针,*LinkList表示的是指针所指的节点,即ListNode
    10 
    11 LinkList first;     //表示定义了一个指针,叫做first,但不能说此时它就是头指针了,首先还要进行空间分配,其次只有在它的基础上继续插入别的指针并且始终保持它在最前面才行
    12 
    13 
    14 ==================以下要好好理解=====================
    15 
    16 ListNode *p;     //定义了一个指针,指向*p节点
    17 
    18 LinkList p;     //和上式效果相同,直接定义了一个指针
    19 
    20 所以说,
    21 ListNode *p = first;
    22 23 ListLink first;
    24 中的first都是指针,p也是指针
    25 
    26 更好的写法是
    27 ListNode* p = first;
    28 
    29 类比:
    30 typedef int* intPointer;
    31 
    32 int* p, *q;
    33 等价于
    34 intPointer p, q;
    35 
    36 注意:     int* p 等价于 int *p
    37 
    38 补充:
    39 //指针可以理解为一段地址,指向着某个element
    40 
    41 //定义一个指针
    42 int* pCount;
    43 char* pLetter;
    44 
    45 //&表示取地址符号
    46 pCount = &count;
    47 
    48 //由指针得到所指内容,用*符号
    49 int a = *pCount;

     另外:

    1.队列中的头节点是空的,详见下面的删除头节点的函数

     1 Status DeQueue_L(LinkQueue &Q, QElemType &e)  {     //如果想要真正的改变的话,就使用取地址符&,通过地址来对真正的进行操作,而非局部范围内  
     2  //若队列不空,则删除Q的队头元素结点,用e返回其值,并返回OK;否则返回ERROR
     3         if (Q.front = =Q.rear) return ERROR;  
     4              //若队列空,返回ERROR
     5         p=Q.front->next;             // p指向队头元素结点
     6         e=p->data;
     7         Q.front->next=p->next; // 修改链队列头结点指针
     8         if(Q.rear= =p)  Q.rear=Q.front;          
     9 // 对于链队列只有一个元素结点的情况,要同时修改队尾指针
    10         free(p);
    11         return OK;
    12 }
  • 相关阅读:
    js字符串拼接 ·${}·
    [转]CRLF Injection
    域渗透-GPP(组策略)利用
    AS-REPRoasting
    域用户名枚举
    我理解的HTTP请求走私(HTTP Request Smuggling)
    NFS未授权访问
    Hessian反序列化RCE漏洞
    CVE-2020-15778 Openssh命令注入漏洞复现
    在非域内机器上运行harphound
  • 原文地址:https://www.cnblogs.com/QingHuan/p/4948843.html
Copyright © 2011-2022 走看看