大家好,今天小编关注到一个比较有意思的话题,就是关于c语言建单链表的问题,于是小编就整理了2个相关介绍c语言建单链表的解答,让我们一起看看吧。
如何做好数据结构的单链表?
首先要熟悉链表的结构,即节点node。它是由一个自身指针和所需要存储的数据组成的结构体变量;
组成链表就是需要创建节点并通过指针相互连接,即结构体中的指针指向另外一个节点;
当然还有一些技巧可以加快链表的操作效率,比如插入,删除,查询等
链表一般用来存储一组数据,如果计算的话,可能需要链表实现的栈,来计算四则运算表达式
从一个具有n个节点的单链表中查找其值等于x的节点,在查找成功的情况下,平均需要比较几个结点,说下原因?
从链表头开始遍历,对比每个结点的值,找到最小值的结点n,摘下来,然后add_tail.然后从头开始循环遍历整个链表,循环次数为(链表长度-1),每次摘第一个结点,然后add_tail.其实找到结点n摘下来,可以直接插到链表任意位置,手动去改下链表指针指向就可以了。两种方法,看你想怎么用了。记得给感谢给赞。
从一个具有n个节点的单链表中查找其值等于x的节点,在查找成功的情况下,平均需要比较(n+1)/2个节点。
由于单链表只能进行单向顺序查找,以从第一个节点开始查找为例,查找第m个节点需要比较的节点数f(m)=m,查找成功的最好情况是第一次就查找成功,只用比较1个节点,最坏情况则是最后才查找成功,需要比较n个节点。
所以一共有n种情况,平均下来需要比较的节点为(1+2+3+...+(n-1)+n)/n=(n+1)/2。
到此,以上就是小编对于c语言建单链表的问题就介绍到这了,希望介绍关于c语言建单链表的2点解答对大家有用。