员理管帅最 发表于 2019-12-15 12:04:56

c++静态链表

#include<iostream>
#define max 100
struct DOT
{
char cur;
int date;
};
class Table
{
public:
      Table();
      int add(int i,int &e);
      int dete(int i, int &e);
      int play();
   private:
       DOT dot;
       intsize;
};
Table:: Table()
{
size=0;
dot.cur=0;
dot.date=0;
for(int i=0;i<max-1;i++)
{
   dot.cur=i+1;
   dot. date=0;
}
}
int Table:: add(int i,int &e)
{
   int k=max-1,d;
if(i<0||i>size+1||size==max-2)
{
std::cout<<"出现错误(可能你插的位置有误或表已满)\n";
return -1;
}
dot.cur]. date=e;
d=dot.cur;
dot. cur=dot.cur].cur;
for(int j=1;j<=i-1;j++)
{
k= dot.cur;
}


   dot. cur=dot. cur;
   dot. cur=d;
      size++;
   return 0;
}
int Table::dete(int i, int &e)
{
int k=max-1,d;
   if(i<0||i>size)
   {
std::cout<<"出现错误(可能你删除的位置有误)\n";
return -1;
   }
   for(int j=1;j<=i-1;j++)
   {
      k=dot. cur;
   }
   e=dot.cur]. date;
   d=dot.cur;
   dot.cur=dot.cur;
   dot. cur=dot.cur].cur;
   dot.cur].cur=d; size--;
   return 0;
}
int Table::play()
{
int k=max-1;
if(size==0){ std::cout<<"当前列表为空";return -1;}
std::cout<<"当前表中一共有"<<size<<"数据"<<std::endl;
std::cout<<"分别………如下:\n";
    for(int i=0;i<size;i++)
{
k=dot. cur;
std::cout<<dot. date<<" ";
}
std::cout<<std::endl;
return 0;
}
int option(Table &table)
{
char c;int i;int e;
while(1)
{
std::cout<<"请输入指令(1为增加,2为删除,3为显示)\n";
std:: cin>>c;
std::cin. ignore(1);
switch(c)
   {
      case '1':   std::cout<<"请输入数据:\n";
                std::cin>>e;
                std::cin. ignore(1);
                std::cout<<"请输入位置:\n";
                std::cin>>i;
                std::cin. ignore(1);
               table.add(i,e);
               break;
      case '2':   std::cout<<"请输入删除位置:\n";
                std::cin>>i;
                std::cin. ignore(1);
            table. dete(i,e);
               break;
      case '3': table.play();
               break;
      default: std::cout<<"你输入指令有误\n请重新输入\n";break;
   }
}
return 0;
}

int main()
{
    Table table;
   int e=12;
    option(table);
return 0;
}
页: [1]
查看完整版本: c++静态链表