数据结构——顺序表的创建、插入、删除等操作

顺序表实现 

#include 
const int maxn=1e3+10;
using namespace std;
struct List
{
	int num;
	int id;
};
typedef struct 
{
	List *place;
	int len;
}Node;
// 初始化
bool init(Node &a)
{
	a.place=new List[maxn];
	if(!a.len)
		return false;
	a.len=0;
	return true;
}
// 取值
bool get_num(Node a,int b,List &c)
{
	if(!b||b>a.len)
		return false;
	c=a.place[b-1];
	return true;
}
// 查找
int find(Node a,int b)
{
	for(int i=0;ia.len+1 || a.len==maxn)
		return false;
	for(int i=a.len-1;i>=b-1;i--)
		a.place[i+1]=a.place[i];
	a.place[b-1].num=c;
	a.len+=1;
	return true;
}
// 删除
bool Delete(Node &a,int b)
{
	if(b<1 || b>a.len)
		return false;
	for(int i=1;i<=a.len;i++)
		a.place[i-1]=a.place[i];
	a.len--;
	return true;
}
int main(int argc, char const *argv[])
{
	Node L;
	List g;
	int n,m,ID;
	// L.len=0;
	cout<<"/*****************请输入要进行的操作的编号*****************/"<建立"<输入"<取值"<查找"<插入"<删除"<输出"<退出\n"<>n;
		if(!n)
			break;
		if(n==1)
		{
			if(init(L))
				cout<<"建立顺序表成功"<>m;
			cout<<"请输入链表元素:";
			L.place=new List[maxn];
			int _;
			for(int i=0;i>_;
				L.place[i].num=_;
				L.place[i].id=i;
				L.len++;
			}
		}
		if(n==3)
		{
			
			cout<<"请输入链表中要取值的位置:";
			cin>>ID;
			if(get_num(L,ID,g))
			{
				cout<<"查找成功!";
				cout<<"链表中第"<>x;
			if(find(L,x))
				cout<<"查找成功!该元素在顺序表中"<>_>>g.num;
			cin>>_>>__;
			if(insert(L,_,__))
				cout<<"插入成功"<>_;
			if(Delete(L,_))
				cout<<"删除成功"<

数组实现

#include 
#define ms(a) memset(a,0,sizeof(a))
const int maxn=1e3+10;
using namespace std;
int a[maxn];
mapmp;
int main(int argc, char const *argv[])
{
	cout<<"/*****************请输入要进行的操作的编号*****************/"<建立"<输入"<取值"<查找"<插入"<删除"<输出"<退出\n"<>n;
		if(!n)
			break;
		if(n==1)
		{
			ms(a);
			mp.clear();
			flag=0;
			cout<<"建立顺序表成功"<>m;
			cout<<"请输入链表元素:";
			for(int i=0;i>a[i];
				mp[a[i]]++;
				flag++;
			}
		}
		if(n==3)
		{
			cout<<"请输入链表中要取值的位置:";
			int ID;
			cin>>ID;
			if(ID>m||ID<1)
				cout<<"查找失败!位置超出范围!"<>x;
			if(mp[x])
				cout<<"查找成功!该元素在顺序表中"<>x>>y;
			for(int i=m-1;i>=x-1;i--)
			{
				a[i+1]=a[i];
			}
			a[x-1]=y;
			m++;
			flag++;
			mp[a[x]]=1;
		}
		if(n==6)
		{
			cout<<"请输入需要删除元素的位置:";
			int x;
			cin>>x;
			if(x>m)
			{
				cout<<"删除失败,超出范围!"<

 

你可能感兴趣的:(数据结构——顺序表的创建、插入、删除等操作)