📄 sort.txt
字号:
#include <iostream>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}node,*linklist;
void main()
{
srand(0);
int i,a,noswap,length=1+rand()%30;
linklist L,p,r,S;
L=(linklist)malloc(sizeof(node));
L->next=NULL;
for(i=1;i<=length;i++)
{
S=(linklist)malloc(sizeof(node));
S->data=rand();
S->next=L->next;
L->next=S;
cout<<"("<<i<<")"<<S->data<<endl;
}
r=L->next;
noswap=1;
if(r)
while(noswap)
{
noswap=0;
p=r;
while(p&&(p->next!=NULL))
{
if(p->data<p->next->data)
{
a=p->data;
p->data=p->next->data;
p->next->data=a;
noswap=1;
}
p=p->next;
}
}
for(i=1;i<=length;i++)
{
cout<<"("<<i<<")"<<r->data<<endl;
r=r->next;
}
#include <stdio.h>
#include <iomanip>
#include <stdlib.h>
#include <iostream>
using namespace std;
typedef struct Node
{
int index;
int math;
int chinese;
int politics;
int English;
struct Node *next;
}Node, *LinkList;
LinkList Getlist(LinkList L,int index);
int InList(LinkList T,int i,int index_c,int math_c,int chinese_c,int politics_c,int English);
int DelList(LinkList M,int i,int *index_d,int *mathd,int *chinesed,int *politicsd,int *English);
void main( )
{
int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int b[20]={87,95,78,65,85,63,84,92,81,76,82,76,65,87,90,51,75,63,52,85};
int c[20]={65,85,74,73,58,91,65,85,49,78,81,80,65,72,67,86,61,58,83,96};
int d[20]={75,87,65,87,95,91,48,64,78,75,93,65,82,48,68,84,75,72,81,92};
int e[20]={87,54,90,87,82,64,72,79,68,62,81,76,71,84,64,85,81,82,64,75};
LinkList L,m,r,y;
Node *s;
L=(LinkList)malloc(sizeof(Node));
L->next=NULL;
for(int i=0;i<20;i++)
{
s=(LinkList)malloc(sizeof(Node));
s->index=a[i];
s->math=b[i];
s->chinese=c[i];
s->politics=d[i];
s->English=e[i];
s->next=L->next;
L->next=s;
}
m=L->next;
cout<<"头插法插入结果:"<<endl<<" 学号 数学 语文 政治 英语"<<endl;
while(m!=NULL)
{
cout<<setw(4)<<m->index<<setw(5)<<m->math<<setw(5)<<m->chinese<<setw(5)<<m->politics<<setw(5)<<m->English<<endl;
m=m->next ;
};
LinkList p_unknown;int index_unknown;
cout<<"请输入要查询的学号:"<<endl;
cin>>index_unknown;
p_unknown=Getlist(L,index_unknown);
if(p_unknown!=NULL)
{
cout<<" 学号 数学 语文 政治 英语"<<endl;
cout<<setw(4)<<p_unknown->index<<setw(5)<<p_unknown->math<<setw(5)<<p_unknown->chinese<<setw(5)<<p_unknown->politics<<setw(5)<<p_unknown->English<<endl;
}
else
cout<<"学号不存在!"<<endl;
int index_cr,math_cr,chinese_cr,politics_cr,English_cr,pos,j;
cout<<"请输入要插入的位置和该学生的各项纪录:"<<endl;
cout<<"插入位置:"<<endl;
cin>>pos;
cout<<"学号:"<<endl;
cin>>index_cr;
cout<<"数学成绩:"<<endl;
cin>>math_cr;
cout<<"语文成绩:"<<endl;
cin>>chinese_cr;
cout<<"政治成绩:"<<endl;
cin>>politics_cr;
cout<<"英语成绩:"<<endl;
cin>>English_cr;
j=InList( L, pos, index_cr, math_cr, chinese_cr, politics_cr, English_cr);
if(j)
cout<<"插入成功!"<<endl;
else
cout<<"插入失败!"<<endl;
m=L->next;
cout<<"插入后的链表:"<<endl;
cout<<" 学号 数学 语文 政治 英语"<<endl;
while(m!=NULL)
{
cout<<setw(4)<<m->index<<setw(5)<<m->math<<setw(5)<<m->chinese<<setw(5)<<m->politics<<setw(5)<<m->English<<endl;
m=m->next ;
};
int u[5];
int *p;
p=&u[0];
int position,jg;
cout<<"请输入要删除的结点位置:"<<endl;
cin>>position;
jg=DelList(L,position,p,p+1,p+2,p+3,p+4);
if(jg)
{
cout<<"删除成功!"<<endl;
cout<<"删除纪录是:"<<endl;
cout<<" 学号 数学 语文 政治 英语"<<endl;
cout<<setw(5)<<*p<<setw(5)<<*(p+1)<<setw(5)<<*(p+2)<<setw(5)<<*(p+3)<<setw(5)<<*(p+4)<<endl;
}
else
cout<<"删除失败!";
m=L->next;
cout<<"删除后的链表:"<<endl;
cout<<" 学号 数学 语文 政治 英语"<<endl;
while(m!=NULL)
{
cout<<setw(4)<<m->index<<setw(5)<<m->math<<setw(5)<<m->chinese<<setw(5)<<m->politics<<setw(5)<<m->English<<endl;
m=m->next ;
};
}
LinkList Getlist(LinkList M,int index)
{
LinkList p;
p=M->next;
while(p!=NULL&&p->index!=index)
p=p->next;
return p;
}
int InList(LinkList T,int i,int index_c,int math_c,int chinese_c,int politics_c,int English_c)
{
LinkList pre,x;
int k;
pre=T;k=0;
while(pre!=NULL&&k<i-1)
{
pre=pre->next;
k=k+1;
};
if(k!=i-1)
{
cout<<"插入不合理!"<<endl;
return 0;
};
x=(LinkList)malloc(sizeof(Node));
x->index=index_c;
x->math=math_c;
x->chinese=chinese_c;
x->politics=politics_c;
x->English=English_c;
x->next=pre->next;
pre->next=x;
return 1;
}
int DelList(LinkList M,int i,int *index,int *math,int *chinese,int *politics,int *English)
{
LinkList pre,r;
int k;
pre=M;k=0;
while(pre->next!=NULL&&k<i-1)
{
pre=pre->next;
k=k+1;
}
if(k!=i-1)
{
cout<<"删除结点的位置不合理!"<<endl;
return 0;
}
r=pre->next;
pre->next=pre->next->next;
*index=r->index ;
*math=r->math;
*chinese=r->chinese;
*politics=r->politics;
*English=r->English;
free(r);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -