C++线性储存结构
来源:优易学  2011-12-4 10:25:14   【优易学:中国教育考试门户网】   资料下载   IT书店

  我意识到数据结构的重要性了,决定把把各种类型写一遍,熟练一下,我觉得对这些应该达到了如指掌的地步,才算可以...

  ////////线性表   顺序储存

  ////////code by Apan

  #include<iostream>

  using namespace std;

  ////////定义线性表

  #define MAXSIZE 1000

  typedef int DATATYPE;

  typedef struct

  {

  DATATYPE data[MAXSIZE];

  int last;

  }Seqlist;

  ////////创建线性表

  void Creat_Seqlist(Seqlist* L)

  {

  cout<<"请输入线性表的长度: ";//////输入线性表长度

  cin>>L->last;

  for(int i=0;i<L->last;++i)

  {

  cout<<"输入第"<<i+1<<"个数据: ";

  cin>>L->data[i];

  }

  }

  ////////插入操作

  void Insert_Seqlist(Seqlist* L ,int i,DATATYPE x)

  {

  ///////检查线性表是否已满

  if(L->last==MAXSIZE)

  {

  cout<<"线性表已满,不能插入!" ;

  return ;

  }

  //////检查插入位置的正确性

  if(i<0||i>L->last)

  {

  cout<<"插入位置错误!";

  return ;

  }

  //////插入数据

  else

  {

  for(int j=L->last-1;j>=i-1;j--)

  L->data[j+1]=L->data[j];

  L->data[i-1]=x;

  L->last++;

  }

  }

  //////删除操作

  void Del_Seqlist(Seqlist* L ,int i)

  {

  /////检查是否为空栈

  if(L->last<0)

  {

  cout<<"线性表为空!";

  return ;

  }

  /////检查删除位置

  if(i<1||i>L->last)

  {

  cout<<"无法找到!";

  return ;

  }

 /////删除元素

  else

  {

  for(int j=i-1;j<L->last-1;++j)

  L->data[j]=L->data[j+1];

  L->last--;

  }

  }

  //////按值查找

  void Location_Seqlist(Seqlist* L,DATATYPE x)

  {

  int i=0;

  while(i<L->last&&L->data[i]!=x)

  i++;

  if(i==L->last)

  cout<<"不存在该值!";

  else

  cout<<"元素 "<<x<<" 是第 "<<i+1<<" 个元素"<<endl;

  }

  /////输出线性表

  void Out_Seqlist(Seqlist L)

  {

  cout<<"\n线性表如下:\n";

  for(int i=0;i<L.last;++i)

  cout<<L.data[i]<<" ";

  cout<<endl;

  }

  ////////主函数

  int main()

  {

  //////建立线性表

  cout<<"建立线性表 \n";

  Seqlist seq;

  Creat_Seqlist(&seq);

  Out_Seqlist(seq);

  //////插入元素

  cout<<"\n\n\n插入元素\n"

  <<"请输入插入的位置:";

  int i;

  DATATYPE x;

  cin>>i;

  cout<<"\n请输入要插入的元素:";

  cin>>x;

  Insert_Seqlist(&seq,i,x);

  Out_Seqlist(seq);

  ///////删除元素

  cout<<"\n\n\n删除元素\n删除第几个元素:";

  cin>>i;

  Del_Seqlist(&seq,i);

  Out_Seqlist(seq);

  /////按值查找

  cout<<"\n\n\n按值查找\n请输入要查找的值: \n";

  cin>>x;

  Location_Seqlist(&seq ,x);

  Out_Seqlist(seq);

  cout<<"\n\n\n谢谢参与,再见!"<<endl;

  return 0;

  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训