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

📄 linearlist2.cpp

📁 成绩排序(c++)用c++编的程序
💻 CPP
字号:
#include<iomanip.h>
#include<stdlib.h>
#include<string.h>

#include"linearlist2.h"
void InitList(LinearList& L,int ms)
{
   L.list=new ElemType[ms];
if(!L.list){
     cerr<<"memory allocation failure!"<<endl;
     exit(1);
}  
L.size=0;
L.MaxSize=ms;
}
void ClearList(LinearList& L)
{
L.size=0;
}
int ListSize(LinearList& L)
{
return L.size;
}
bool ListEmpty(LinearList& L)
{
return L.size==0;
}
bool ListFull(LinearList& L)
{
return L.size==L.MaxSize;
}
void TraverList(LinearList& L)
{
   for(int i=0;i<L.size;i++)cout<<L.list[i]<<' ';
   cout<<endl;
}
bool FindList(LinearList& L,ElemType& item)
{
   for(int i=0;i<L.size;i++)
     if(L.list[i]==item){
        item=L.list[i];
        return true;
	 }
  return false;
}
bool UpdateList(LinearList& L,const ElemType& item)
{
   for(int i=0;i<L.size;i++)
    if(L.list[i]==item){
       L.list[i]=item;
       return true;
    }
   return false;
}
bool InsertList(LinearList& L,const ElemType& item, int mark)
{
   if(ListFull(L))return false;
   if(mark>0){
      for(int i=L.size-1;i>=0;i--)
         L.list[i+1]=L.list[i];
      L.list[0]=item;
   }
   else if(mark<0)L.list[L.size]=item;
   else {for(int i=0; i<L.size;i++)
        if(item<L.list[i])break;
        for(int j=L.size-1;j>=i;j--)
        L.list[j+1]=L.list[j];
        L.list[i]=item;
   }
   L.size++;
   return true;
}
bool DeleteList(LinearList& L,ElemType& item, int mark)
{
   if(ListEmpty(L))return false;
   if(mark>0){
      item=L.list[0];
      for(int i=1;i<L.size;i++)
          L.list[i-1]=L.list[i];
   }
   else if(mark<0)item=L.list[L.size-1];
   else {for(int i=0;i<L.size;i++)
     if(L.list[i]==item)break;
     if(i>L.size)
      return false;
     else item=L.list[i];
     for(int j=i+1;j<L.size;j++)
         L.list[j-1]=L.list[j];
   }
   L.size--;
   return true;
}
void OrderOutputList(LinearList& L,int mark)
{
   int i,k;
   int*b=new int[L.size];
   for(i=0;i<L.size;i++)b[i]=i;
   for(i=1;i<L.size;i++){
     k=i-1;
     for(int j=i;j<L.size;j++){
        if(mark==1&&L.list[b[j]]<L.list[b[k]])k=j;
        if(mark!=1&&L.list[b[k]]<L.list[b[j]])k=j;
	 }
     if(k!=i-1){int x=b[i-1];b[i-1]=b[k];b[k]=k;}
	 }
for(i=0;i<L.size;i++)
    cout<<L.list[b[i]]<<' ';
cout<<endl;
}
bool operator == (const ElemType& r1,const ElemType& r2)
{
   return strcmp(r1.name,r2.name)==0;
}
bool operator < (const ElemType& r1,const ElemType& r2)
{
   return strcmp(r1.name,r2.name)==-1;
}
 ostream& operator << (ostream& ostr,const ElemType& r)
{
   ostr.setf(ios::left);
   ostr<<setw(10)<<r.name<<setw(5)<<r.grade<<" ";
   return ostr;
}
istream& operator >> (istream& istr,ElemType& r)
{
   istr>>r.name>>r.grade;
   return istr;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -