这些空怎么填啊,初学者 ,有几个不会,有没有人解,决一下,不知道怎么做 不知道 不知道怎么做

img

img


不知道怎么做,有没有人解决一下 ,我还是初学者不会这些题目,有没有人解决一下

  1. 第一题,可以用头插法进行原地逆置,按顺序遍历链表,每遍历一个就插入到头结点的后面。
    void reverseList(nodeList &L) {
     Node*p = L->next,*tmp;
     L->next = NULL;//这里是为了保证最后一个结点指向NULL
     while (p) {//遍历链表
         if (p->next)
             tmp = p->next;
         else
             tmp = NULL;
         //插入到L头结点的后面
         p->next = L->next;
         L->next = p;
         p = tmp;
     }
    }
    
  2. 第二题
    1)元素最多不会超过L长度,我认为也可以插入到第0个数据之后:i<0 || i>L.length
    2)初始化申请的最大空间为MAXSIZE:L.length == MAXSIZE
    3)把第i个后面的元素往后挪,但数组下标从0开始所以是i-1:j > i - 1
    4)数组下标从0开始所以第i+1个数位置是i下标:L.elem[i] = e;
    5)L.length++;