C语言(十七)链表

一、算法

        通俗定义:

            解题的方法和步骤

        狭义定义:

            对存储数据的操作

            对不同的存储结构,要完成某一个功能所执行的操作时不一样的

            比如:

               要输出数组中所有的元素的操作和

               要输出数组中所有元素的操作肯定是不一样的

            这说明:

               算法是依附于存储结构的

               不同的存储结构,所执行的算法是不一样的

        广义定义:

            广义的算法也叫泛型

            无论数据是如何存储的,对该数据的操作都是一样

        我们至少可以通过两种结构来存储数据

              数组

                优点:

                  存取速度快

                缺点:

                  需要一个连续的很大的内存

                  插入和删除元素的效率很低

              链表

                专业术语:

                    头结点

                      头结点的数据类型和首节点的类型是一模一样的

                      头结点是首节点前面的那个节点

                      头结点并不存放有效数据

                      设置头结点的目的是为了方便对链表的操作                        头指针

                      存放头结点地址指针变量

                    首节点

                        存放第一个有效数据的节点

                    尾节点

                        存放最后一个有效数据的节点

                优点:

                  插入删除元素效率高

                  不需要一个连续的很大的内存空间

                缺点: 

                  查找某个位置的元素效率低

原文地址:https://www.cnblogs.com/Maxwell599/p/3182493.html