[算法笔记]静态链表

静态链表

静态链表的实现原理是hash,通过建立一个结构体数组,并令数组的下标直接表示节点的地址,来达到直接访问数组中的元素就能访问节点的结果。
静态链表不需要头节点。

#include
struct Node{
    typename data;
    int data;
}node[size];

由于可能要使用sort函数,在使用静态链表时尽量不要把结构体类型名和结构体变量名取成相同的名字。

静态链表的通用解题步骤:
1.定义静态链表

struct Node{
    typename data;
    int data;
    xxx;//节点的性质
}node[size];

2.对静态链表初始化,对定义中的xxx初始化称为一个正常情况下达不到的数字。
3.根据题目中给出的一条链表首节点的地址,来遍历整条链表,同时对xxx进行标记,(同时可以对有效节点进行计数)。
4.通过sor他函数对结构体数组进行排序,将有效节点都移到结构体数组的一端(如对xxx的性质进行从大到小排序等)。通过count的数值来访问它
5.一般题目会有额外的要求,cmp函数中一般都有第二级排序,在对两个节点都是有效节点的时候进行第二级排序。
6.之后根据题目的要求进行接下来的操作

你可能感兴趣的:(算法笔记)