欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

顺序表的基本操作

程序员文章站 2024-03-20 14:20:46
...
在这里插入代码片
**#include <iostream>
#include <cstring>
#include <string>
#include <stdio.h>
#define MAX 10001
using namespace std;
//顺序表基本操作
typedef struct//顺序表
{
    int data[MAX];
    int len;
}sqlist;
//返回第一个比x大的元素:
int find(sqlist L,int x)//因为是查找不需要改变 值传递即可不用引用类型(指针)
{
    for(int i=0;i<L.len;i++)
    {
        if(x<L.data[i])
            return i;
    }
    return -1;//找不到
}
//引用型与指针型:指针是一个实体,而引用仅是个别名;
//引用型不需要->来引用 L既是实参的别名(即L就是原来的实参)  
//指针类型只是实参地址
//L本身改变 需要用引用型
void insert(sqlist &L,int x)//插入x
{
    int p=find(L,x);
    for(int i=L.len-1;i>=p;i--)
    {
        L.data[i+1]=L.data[i];//从后移动腾出空
    }
    L.data[p]=x;
    L.len++;
}
//删除某个位置元素
int delete(sqlist &L,int p,int &e)//把删除后的值给e
{
    if(p<0||p>=L.len);//判断越界
        return 0;//查找失败
    e=L.data[p];//删除的值返回给e;
    for(int i=p+1;i<L.len;i++)
    {
        L.data[i-1]=L.data[i];
    }
    L.len--;//删除后长度别忘减
    return 1;
}
int main()
{
   
    return 0;
}
**