链表的简单学习

来源:互联网 发布:田岛绣花软件 编辑:程序博客网 时间:2024/06/08 13:11

链表:     

     1链表的种类很多,有单链表、双链表、循环链表;链表主要实现:链表的创建、求长度、排序、插入等基本不功能。

   2、结点:头两部分组成,1、其本身储存的信息;2、其后的储存单元的地址;

   3、链表必须有头指针,链表的最后一个指向:如果是单链表就指向NULL,循环链表指向他的头结点。

   4、由于链表中的各个结点是由指针链接在一起的,其存储单元不是连续的,因此,对其中任意结点的地址无法向数组一样,进行        随机访问。只能从链表的头指针(head)开始,用一个指针p先指向第一个结点,然后根据节点的指针域找到下一个结点。以        此类推,直至找到所要访问的结点或到最后一个结点(指针为空)为止。
    5、 链表结点的插入(单链表)
        如果要在链表中的结点a之前插入结点b,首先要找出a的上一个结点a1,然后使a1的指针域指向b,在令b的指针域指向a,即可完成插入。(一般情况)

   6、 链表结点的删除 (单链表)   

        如果要在链表中删除结点a并释放被删除的结点所占的存储空间,应使a得上一个结点a_k-1的指针域指向a的下一个结点a2。

  STL:

  1.list的成员函数push_back和push_front插入一个元素到list中,前者插入到list后面,后者插入到前面;

  2.empty()//判断list是否为空,为空返回true,否者返回空;

   3.STL的通用算法for_each

   for_each (list.begin(),list.end(), PrintIt);

   PrintIt (   类型 变量   )

  {

  处理步骤;

  }

  用算法for_each()来遍历一个iterator的范围,然后调用PrintIt()来处理每个对象。

  4. 用STL的通用算法count()来统计list中的元素个数

     a=count(list.begin(), list.end(), 100);//a为list中100的个数;

  5. 使用STL通用算法find()在list中查找对象

  6.使用STL通用算法search在list中找一个序列

  7.使用list的成员函数sort()排序一个list。

  8.用list成员函数remove()从list中删除元素。

原创粉丝点击