向数组中插入数(顺序表)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向数组中插入数(顺序表)相关的知识,希望对你有一定的参考价值。

有一个数组init_list[],数组的为长度n,此时需要向数组中的第i个位置(不是索引为i,而是i-1)插入一个数x。

代码如下:

#include<iostream>
using namespace std;
#define MAXSIZE 100
int init_list[MAXSIZE];
int insert_list(int list[],int *p,int i,int x){
	//之所以用*p是因为:当插入成功的时候,数组的长度要加1
	//如果不用指针的话,便不能改变主函数中n的值
	if(i<0||i>*p){
		cout<<"i输入不合法"<<endl;
	} else  if(*p>=MAXSIZE){
		cout<<"超出数组长度MAXSIZE"<<endl;;
	} else {
		for(int j=*p;j>i;j--){
			//从最后到第i个数组中的数,依次向后移动一个位置,空出第i个位置来存放x
			list[j]=list[j-1];
		}
		list[i]=x;
		(*p)++;//此步容易忘记,若不增加1,则元数组的长度并未改变,就会丢失数组中最后一个数
		cout<<"插入成功"<<endl;
		return 0;
	}
}
int main(){
	int n,x;
	cout<<"请输入数组长度"<<endl;
	cin>>n;
	cout<<endl;
	cout<<"请输入数组元素"<<endl;
	for(int i=0; i<n; i++){
		cin>>init_list[i];
	}
	cout<<endl;
	cout<<"请输入需要插入的位置"<<endl;
	int i;
	cin>>i;
	cout<<"请输入数值"<<endl;
	cin>>x;
	insert_list(init_list,&n,i,x);
	for(int i=0;i<n;i++){
		cout<<init_list[i]<<" ";
	}
}

 

以上是关于向数组中插入数(顺序表)的主要内容,如果未能解决你的问题,请参考以下文章

数组实现双链表

怎样在顺序表第i个位置插入一个元素

数据结构顺序表——链表

Java 3:顺序表的操作

往有序数组中插入数

数据结构之顺序线性表