离散存储–链表

定义:

  1. n 个结点离散分配
  2. 彼此通过指针相连
  3. 每个结点只有一个前驱结点,每个结点只有一个后继结点。
  4. 首结点没有前驱结点,尾结点没有后继结点

专业术语:

  1. 首结点

    第一个有效结点

  2. 尾结点

    最后一个有效结点

  3. 头结点

    第一个有效结点前的那个结点头结点不存放有效数据
    加头结点的目的主要是为了方便对链表的操作

  4. 头指针

    指向头结点的指针变量

  5. 尾指针

    指向尾结点的指针变量

如果希望通过一个函数来对链表进行处理,我们至少需要接收链表的哪些参数:

只需要一个参数:头指针  
因为我们通过头指针可以推算出链表的其他所有信息。

构建一个结点:

1
2
3
4
5
6
typedef struct Node
{
int data; //数据域
struct Node * pNext; //指针域
}* PNODE,NODE; //NODE等价于struct Node,
//PNODE等价于struct Node *
阅读全文 »