本文作者:sukai

链式编程法(什么是链式编程)

sukai 04-18 31

  单链表上基本操作的实现

  1、采用头插法建立单链表

  该方法从一个空表开始,生成新节点,并将读取到的数据存放到新结点的数据域中,然后将新结点到当前链表的表头,即头结点之后,如下图:

  

  头插法建立单链表的算法如下:

  

链式编程法(什么是链式编程)

  采用头插法建立单链表,读入数据的顺序与生成的链表中元素的顺序是相反的。每个结点插入的时间为O(1),设单链表长为n,则总的时间复杂度为O(n)。

  2、采用尾插法建立单链表

  头插法建立单链表的算法虽然简单,但生成的链表中结点的次序和输入数据的顺序不一致。若希望两次次序一致,可采用尾插法。该方法是将新结点插入到当前链表的表尾上,为此必须增加一个尾指针r,使其始终指向当前链表的尾结点,如下图:

  

  尾插法建立单链表的算法如下:

  

  因为附设了一个指向表尾结点的指针,故时间复杂度和头插法相同。

  3、按序号查找结点值

  在单链表中从第一个结点出发,顺时针next域逐个往下搜索,直到找到第i个结点为止,否则返回最后一个结点指针域NULL。

  按序号查找结点值的算法如下:

  

  按序号查找操作的时间复杂度为O(n)。

  4、按值查找表结点

  从单链表第一个结点开始,由前往后依次比较表中各结点数据域的值,若某结点数据域的值等于给定值e,则返回该结点的指针;若整个单链表中没有这样的结点,则返回NULL。

  按值查找结点的算法如下:

  

  按值查找操作的时间复杂度为O(n)。

  来自王道论坛(推荐购买正版),交流学习,每天一点点,有问题和建议在留言板留言~~

  qq群号:

  群一:176792348

  群二:262739638

群三:274526397

  群功能:方便大家互相交流~~群文件中各种建模资料~~

  ps:数据结构

阅读
分享