目录
一.顺序表
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
int len = 10;
struct node
{
string num;
int s;
}a[20];
void creat()
{
cout << "请录入十位同学的学号和成绩信息!" << endl;
for(int i=0;i<10;i++)
{
cin >> a[i].num >> a[i].s;
}
}
void insert(int p) //在位置p插入,p从0开始
{
string ops;
int op;
if(p>len || p<0)
{
cout << "该位置不能插入!" << endl;
return ;
}
cout << "请输入学号和成绩:" << endl;
cin >> ops >> op;
for(int i=len;i>=p;i--)
{
a[i+1].s = a[i].s;
a[i+1].num = a[i].num;
}
a[p].s = op;
a[p].num = ops;
len++;
cout << "插入成功!" << endl;
}
void del(int p) //删除p位置的结点,p从0开始
{
if(p<0 || p>=len)
{
cout << "节点不存在,不能删除!" << endl;
return ;
}
for(int i=p;i<len;i++)
{
a[i].num = a[i+1].num;
a[i].s = a[i+1].s;
}
len--;
cout << "删除成功!" << endl;
}
void change(int p) //修改p节点的信息
{
string ops;
int op;
if(p<0 || p>len)
{
cout << "节点不存在,无法修改!" << endl;
return ;
}
cout << "请输入新的学号和成绩:" << endl;
cin >> ops >> op;
a[p].num = ops;
a[p].s = op;
cout << "修改成功!" << endl;
}
void find(int p)
{
if(p<0 || p>=len)
{
cout << "节点不存在,无法查询!" << endl;
return ;
}
cout << "学号成绩信息如下:" << a[p].num << " " << a[p].s << endl;
}
void print()
{
if(!len)
{
cout << "内容为空!" << endl;
return ;
}
cout << "学好----成绩:" << endl;
for(int i=0;i<len;i++)
cout << "同学" << i << ": " << a[i].num << " " << a[i].s << endl;
}
int main()
{
int tmp,op;
creat();
while(1)
{
cout << "请输入代号" << endl;
cout << "0--退出程序" << endl;
cout << "1--插入信息" << endl;
cout << "2--删除信息" << endl;
cout << "3--修改信息" << endl;
cout << "4--查询信息" << endl;
cin >> tmp;
if(tmp == 0)
return 0;
cout << "请输入位置坐标:" << endl;
cin >> op;
switch(tmp)
{
case 1:insert(op); break;
case 2:del(op); break;
case 3:change(op); break;
case 4:find(op); break;
default:cout << "错误的输入!" << endl;
}
print();
}
return 0;
}
二.单链表
结构体定义中不要使用string类型: