#include"iostream"
#define max 20
typedef int Type;
using namespace std;
typedef struct pNode {
Type num[max];
int lenth=0;
}Node;
/*查找需要输入结构体与序号*/
int search(Node *l,int index)
{
/*如果长度非零*/
if (l->lenth != 0 && l->lenth >= index && index > 0)
{
return l->num[index - 1];
}
else
cout << "抱歉,可能是输入范围错误或者数组内无元素";
return -1;
}
/*输入序号,在该序号之前插入元素*/
int insert(Node* l, int index,Type New)
{
/*若长度为0,且序号不为1*/
if (l->lenth == 0 && index != 1)
{
cout << "数组为空,所以无法在该序号前插入数据"<<endl;
return -1;
}
/*若长度满了*/
else if (l->lenth == max)
{
cout << "数组已经被填满了,无法插入新数据"<<endl;
return -1;
}
/*若长度为0,且序号为1*/
else if (l->lenth == 0 && index == 1)
{
l->num[index - 1] = New;
l->lenth++;
return 1;
}
else if (index>l->lenth+1)
{
cout << "序号错误,无法插入新数据" << endl;
return -1;
}
/*正常情况*/
else
{
for (int i = l->lenth-1; i >= index-1; i--)
{
l->num[i + 1] = l->num[i];
}
l->num[index - 1] = New;
l->lenth++;
cout << "添加成功" << endl;
return 1;
}
}
int del(Node* l, int index)
{
if (l->lenth == 0)
{
cout << "数组长度为零,删除失败"<<endl;
return -1;
}
else if(index>l->lenth||index<1)
{
cout << "序号大于/小于数组长度,删除失败"<<endl;
return -1;
}
else
{
for (int i = index - 1; i < l->lenth; i++)
{
l->num[i + 1] = l->num[i];
}
l->lenth--;
cout << "删除成功" << endl;
return 1;
}
}
int clear(Node* l)
{
l->lenth = 0;
cout << "清空成功" << endl;
return 1;
}
int masert(Node* l, Type New)
{
if (l->lenth == 0)
{
l->num[0] = New;
l->lenth++;
return 1;
}
else if(l->lenth<max&& l->lenth>0){
l->num[l->lenth] = New;
l->lenth++;
//cout << "添加成功" << endl;
return 1;
}
else
cout << "添加失败" << endl;
return -1;
}
int main()
{
Node l;
for (int i = 1; i < 6; i++)
{
masert(&l, i);
}
/*insert(&l, 7, 0);*/
/*del(&l, 0);*/
/*clear(&l);*/
int i=search(&l, 6);
cout << "shjhdjas" << i<<endl;
for (int i = 0; i < l.lenth; i++)
{
cout << l.num[i];
}
}
3.4顺序存储结构(大话)c++实现
最新推荐文章于 2022-07-25 20:44:41 发布