设计线性链表设计c语言

  1. 所需实现的操作包括:
    1. 线性链表的创建。
    2. 线性链表的输出,输出线性链表中当前结点个数和各结点的元素值。如包含1、2、3、4四个结点的线性链表输出结果为“线性链表中当前有4个结点,分别为1, 2, 3, 4”。
    3. 在线性链表中查找元素值为b的结点,查找成功返回1,查找失败返回-1。
    4. 在线性链表包含指定元素x的结点之前插入数据域值为b的新结点。
    5. 删除线性链表中首个数据域值为b的结点。
    6. 对线性链表中所有结点进行逆转(逆序,1234变为4321)。
    7. 线性链表的复制,将一个线性链表中的各结点复制到另一个线性链表中(完成复制后两个线性链表中结点数相同)。
    8. 删除线性链表中的冗余结点。(元素值相同的结点只保留一个)
    9. 将线性链表分解为两个线性链表,其中一个线性链表含有原线性链表中所有数据域值为奇数的结点,另一个线性链表含有原线性链表中所有数据域值为偶数的结点。
    10. 两个有序(升序)线性链表的合并,要求合并后线性链表中的结点仍然有序。
  2. 设计主函数,对所实现的操作进行测试,验证所设计函数的有效性。
    1. 创建一个线性链表LL0(空链表),表中结点数据域为整型。
    2. 针对本人学号中的十个数字,依次在线性链表LL0中查找是否已存在包含该数字的结点,如包含,则在首次匹配的结点之前插入该数字;如不包含,则在线性链表的头部和尾部分别插入该数字(第一次时为空表,必然不包含)。在10个数字查找/插入结束后输出线性链表LL0。例如学号为2020217999时,10个数字查找/插入结束后线性链表LL0的输出结果为“线性链表中当前有15个结点,分别为9, 9, 9, 7, 1, 0, 0, 2, 2, 2, 2, 0, 1, 7, 9”。
    3. 在数据域值为1的结点之前插入数据域值为15的新结点,并输出线性链表LL0。
    4. 删除首个数据域值为2的结点,并输出线性链表LL0。
    5. 对LL0中的所有结点进行逆转,将结果复制到线性链表LL1中,输出LL1。
    6. 删除LL0中的冗余结点,并输出LL0。
    7. 将线性链表LL1分解为两个线性链表,其中线性链表LL2含有LL1中所有元素值为奇数的结点,线性链表LL3含有sq1中所有元素值为偶数的结点,输出LL1、LL2和LL3。
    8. 设有序线性链表LL4的结点为1, 3, 5, 7,有序线性链表LL5的结点为2, 4, 6, 8,将两个有序线性链表合并为LL6,并输出LL4、LL5和LL6。
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^