数据结构作业:顺序表简单应用

今天算是比较用心的在电脑勉强做作业吧,但是毕竟不怎么喜欢写c/c++的代码,已经习惯用java了,觉得java写起来很舒服,所以做这个作业做了很久,至少3个小时吧。这学期现在还是第一次用心地做数据结构作业,代码经过调试可以完美运行,可是没有考虑运行的效率,和时间复杂度等等,等我有空的时候再来调试吧。可能写的不太符合规范,我本来想分模块话写,可是怎么也实现不了想要的功能,于是我就全部写在main函数里面了,算是完全面向过程吧,技术大牛不要笑哦,想要借鉴的同学完全可以拿去,代码保证正确。

#include
using namespace std;

struct list
{
int tlist[50];
int size;
};
int main()
{
int temp;
int innum,delnum;
int flag;

void printList(list l);

list t;
cout< <”请输入你想要的链表长度:”< cin>>t.size;

cout< <”请输入链表”< for(int i=0;i cin>>t.tlist[i];
}

for(int j=0;j< (t.size-1);j++){
for(int k=j+1;k if(t.tlist[j]>t.tlist[k]){
temp=t.tlist[j];
t.tlist[j]=t.tlist[k];
t.tlist[k]=temp;
}
}
}
cout< <”排序后的链表为”< printList(t);

cout<<”情输入你想插入的数:”< cin>>innum;

if(innum>t.tlist[t.size-1]){
//要插入的数最大
t.tlist[t.size]=innum;
}else{
//要插入的数最小
if(innum flag=-1;
}else{
//要插入的数在中间
for( int m=0;m if(innum>t.tlist[m]&&innum flag=m;//取得要插入数所在位置,flag为比插入数的前一个位置
break;
}
}
}
for(int k=t.size-1;k>flag;k–){
t.tlist[k+1]=t.tlist[k];

}
t.tlist[flag+1]=innum;
}

t.size=t.size+1;//将顺序链表长度加1
printList(t);

cout< <”请输入你想删除的数”< cin>>delnum;
for(int a=0;a if(delnum==t.tlist[a]){
cout<<”发现你想要删除的数,正在删除…”< if(delnum==t.tlist[t.size]){
t.size=t.size-1;
}else {

for(int b=a;b t.tlist[a]=t.tlist[a+1];
}
t.size=t.size-1;//删除成功长度减一
}
}
}
printList(t);//输出最终数据;
system(“pause”);
return 0;

}


void printList(list l)

{

cout<<”顺序链表为”<

for(int j=0;j

cout<

}

}