【数据结构】两种顺序表有序插入的函数

简介: 【数据结构】两种顺序表有序插入的函数

所用语言(C++)

顺序表有序插入方法1:

Status SqListInsert(SqList &L,ElemType e)//顺序表有序插入方法1 
{
  int i,j,k;
  for(i=0;i<L.length;i++)//寻找e的插入位置
  {
      if(L.elem[i]>=e)
      break;
  }k=i;
  for(j=L.length-1;j>=k;j--)//插入位置之后的元素后移
  L.elem[j+1]=L.elem[j];
  L.elem[k]=e;
  ++L.length;
  return OK;
}

需要注意的是这里我采用一个变量k,用来得到此时大于等于e的值的元素的下标,即k是插入位置的下标,不是逻辑位置。


顺序表有序插入方法2:

Status SqListInsert(SqList &L,ElemType e)//顺序表有序插入方法2 
{
  int i,j;
  while(i<L.length&&L.elem[i]<=e)//找到插入位置
  {
    i++;
  }
  for(j=L.length-1;j>=i;j--)//插入位置之后的元素后移
  L.elem[j+1]=L.elem[j];
  L.elem[i]=e;
  ++L.length;
  return OK;
}

此方法相较于第一个方法,少引入了一个变量,但两种方法无独有偶。如果大家更喜欢用i来表示逻辑位置,而不是下标,只需要改变相应循环的判断即可。

目录
相关文章
|
2月前
|
存储 算法 程序员
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
40 0
|
2月前
|
存储 编译器
数据结构:顺序表详解
数据结构:顺序表详解
37 0
|
2天前
|
存储
数据结构第二课 -----线性表之顺序表
数据结构第二课 -----线性表之顺序表
|
3天前
|
存储 Java
数据结构奇妙旅程之顺序表和链表
数据结构奇妙旅程之顺序表和链表
|
7天前
|
存储 算法 C语言
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
|
10天前
|
存储
数据结构:3、线性表和顺序表
数据结构:3、线性表和顺序表
18 1
|
16天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
59 0
|
23天前
|
存储 缓存 程序员
初阶数据结构之---顺序表和链表(C语言)
初阶数据结构之---顺序表和链表(C语言)
|
6天前
|
存储 JavaScript 前端开发
什么是堆?什么是栈?他们之间从区别和联系
什么是堆?什么是栈?他们之间从区别和联系
22 0
|
2天前
|
存储
栈与队列练习题
栈与队列练习题