21xrx.com
2024-11-22 03:06:57 Friday
登录
文章检索 我的文章 写文章
C++代码实现顺序表的基本操作
2023-07-06 01:35:11 深夜i     --     --
C++ 顺序表 基本操作 实现 代码

顺序表是一种线性表的实现方式,它通过数组的形式存储元素,因此支持随机访问和顺序访问。在C++中,通过定义结构体来实现顺序表,同时通过定义不同的函数实现顺序表的基本操作。

顺序表结构体定义:


#define MaxSize 100  //定义顺序表最大长度

typedef struct {

  int data[MaxSize]; //存储数据元素

  int length;     //顺序表当前长度

} SqList;        //定义结构体类型

基本操作包括初始化、插入、删除、查找、遍历、求长度、销毁等。

1.初始化顺序表:


void InitList(SqList &L)

{

  for (int i = 0; i < MaxSize; i++) {

    L.data[i] = 0;

  }

  L.length = 0;

}

2.插入元素:


bool InsertList(SqList &L, int pos, int elem)

{

  if (pos < 1 || pos > L.length + 1 || L.length >= MaxSize)  //判断插入位置是否有效

    return false;

  

  for (int i = L.length; i >= pos; i--) {   //将pos及之后的元素后移一位

    L.data[i] = L.data[i - 1];

  }

  L.data[pos - 1] = elem;   //插入元素

  L.length++;   //表长加1

  return true;

}

3.删除元素:


bool DeleteList(SqList &L, int pos)

{

  if (pos < 1 || pos > L.length)  //判断删除位置是否有效

    return false;

  

  for (int i = pos; i < L.length; i++) {  //将pos之后的元素前移一位

    L.data[i - 1] = L.data[i];

  }

  L.length--;   //表长减1

  return true;

}

4.查找元素:


int FindList(SqList L, int elem)

{

  for (int i = 0; i < L.length; i++) {

    if (L.data[i] == elem) {

      return i + 1;    //找到元素返回位置

    }

  }

  return 0;  //未找到元素返回0

}

5.遍历顺序表:


void TraverseList(SqList L)

{

  for (int i = 0; i < L.length; i++) {

    cout << L.data[i] << " ";

  }

  cout << endl;

}

6.求顺序表长度:


int LengthList(SqList L)

  return L.length;

7.销毁顺序表:


void DestroyList(SqList &L)

{

  for (int i = 0; i < MaxSize; i++) {

    L.data[i] = 0;

  }

  L.length = 0;

}

以上就是顺序表的基本操作,它们可以为我们提供便利和快捷的数据处理方式。在实现时需要注意数组的越界访问,以及基本操作的实现方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复