数据结构线性表有关实习题

一个线性表有n个元素(n<MAXSIZE, MAXSIZE指线性表的最大长度),且递增有序。现有一元素x要插入到线性表的适当位置上,并保持线性表原有的顺序不变。设计程序实现。要求:采用顺序存储表示实现;采用链式存储表示方法实现;比较两种方法的优劣。

链式比较简单,找到插入位置,将新节点插入链表即可
顺序表复杂一些,需要将插入位置之后的所有元素向后移动一位,然后在插入位置写入新数据,同时将顺序表长度值加1才行

//顺序表的插入函数
int Insert(Seqlist *s,int n)
{
    if(s==NULL)
        return -1;
    for(int i=0;i<s->len;i++)
    {
         if(s->data[i] < n)
         {
              for(int j=s->len;j>i;j--)
                  s->data[j] = s->data[j-1];
              s->data[i] = n;
              s->len++;
              return i;
         }
    }
    s->data[s->len++] = n;
    return s->len-1;
}


//链表的插入函数
int Insert(LNode *head,int n)
{
     if(head == NULL)
          return -1;
     LNode *p = (LNode*)malloc(sizeof(Node));
     p->data = n;
     p->next = NULL;
     LNode *q = head;
     while(q->next != NULL)
     {
          if(q->next->data < n)
          {
                p->next = q->next;
                q->next = p;
                return 1;
          }
          q = q->next;
     }
     q->next = p;
     return 1;
}