html

数据结构笔试题 Day 1

笔试题1

已知一个顺序表 L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功).

/递增排序  1 2 30 40  55   

void  SeqList_Insert(SeqList *L,int x)

{

  int temp = -1; //记录待插入元素的下标



  //遍历顺序表,找到插入位置,比较元素

  for (int i = 0; i <= last; ++i)

  {

​    if (x < L[i])

​    {

​      temp = i;

​      break;

​    }

  }



  if( -1 == temp)

  {

​    L[last+1] = x;

​    return;

  }



  //把待插入位置的后继元素向后移动

  for (int i = last; i >= temp; i--)

  {

​    L[i+1] = L[i];

  }



  L[temp] = x;

}

/

笔试题2

删除顺序表 L中下标为p(0<=p<=length-1) 的元素,成功返回 1,否则返回 0,并将被删除元素的值赋给 e。

int SeqList_Remove(*L,int p)

{

  //判断顺序表的地址是否有效

  if(NULL == L)

  {

​    return 0;

  }



  int e = 0; //变量e,记录待删除元素的值





  //把待删除元素的值备份到变量e中

  e = L[p];



  //把待删除元素的后继元素向前移动一个单位

  for (int i = p; i < length; ++i)

  {

​    L[i] = L[i+1];

  }



  return 1;

}
posted @ 2024-04-22 18:49  大螺丝贼六  阅读(11)  评论(1)    收藏  举报
html