不懂代码应该怎么实现,怎么判断插入位置

img

在一个有序递增顺序表中插入数据,插入后使其依旧递增有序。我的思路是先初始化一个顺序表,用指针从前往后遍历顺序表,并和插入元素比较。若开始就大于则直接在头插入,剩下情况依次判断,就是没懂代码咋实现。

顺序表的根据存储结构的不同,插入一条数据的方式也不同

  • 如果是链式存储结构的顺序表,那么找到插入位置之后,设置好数据的指向位置就可以了,不过会有三种情况发生:
  1. x 比 第一个元素还小,那么 x 就作为链表的头元素,xnext 指向 原来链表的头元素
  2. x 比最后一个元素还大,那么 'x' 就作为链表的尾元素,将原链表尾的 next 指针指向 x,x 的 next 指针指向为 null
  3. x 不是链表中最大或最小的元素,那么找到插入位置之后,需要将前一个位置的元素的 next 指针指向 x ,x 的 next 指针指向原来这个位置的元素
  • 如果是顺序存储结构的顺序表,那么找到插入位置之后,所有在插入位置之后的元素都要往后移动一个位置之后,再将元素 x 进行插入,如果 x 比最后一个元素还大,那么可以直接插入顺序表的尾部,无需移动元素