当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
线性表:顺序储存结构
发布时间:2010/12/10 15:08:14 来源:www.xue.net 编辑:城市总裁吧

   我意识到数据结构的重要性了,决定把把各种类型写一遍,熟练一下,我觉得对这些应该达到了如指掌的地步,才算可以...
  注意:我是小菜菜,除了小菜菜菜之外大家都可以笑过了啊,当然有空希望大虾能多多指点我这小菜菜....呵呵,谁让我是小菜菜呢??加油...
  ////////线性表   顺序储存
  ////////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;
  }

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved