⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sort.txt

📁 用C语言实现的算法:用一个随机数生成一个动态链表
💻 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 + -