关闭

数据结构上机题目

标签: 数据结构
68人阅读 评论(0) 收藏 举报

/*
1.输入一组整型元素序列,建立顺序表。
2.实现该顺序表的遍历。
3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。
4.判断该顺序表中元素是否对称,对称返回1,否则返回0。
5.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。
6.输入整型元素序列利用有序表插入算法建立一个有序表。 
7.利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。
8.编写一个主函数,调试上述算法。
*/
#include<iostream>
using namespace std;
class seqlist
{
public:
 seqlist(int sz=100);
 void input();
 void printlist();
 int find();
 int duichen();
 int paixu();
 void youxubiao();
 int hebing(seqlist);
private:
 int *data;
    int length;
};
seqlist::seqlist(int sz)
{
 if(sz>0)
 {  
     length=0;
  data=new int[sz];
     cout<<"顺序表创建完毕"<<endl;
 }
 else
  cout<<"格式非法,顺序表创建失败"<<endl;
}
void seqlist::input()
{
 cout<<"请输入顺序表长度:"<<endl;
 cin>>length;
 cout<<"请输入表中数据:"<<endl;
 for(int i=0;i<length;i++)
     cin>>data[i];
 cout<<"输入完毕"<<endl;
}
void seqlist::printlist()
{
 cout<<"遍历结果:"<<endl;
 for(int i=0;i<length;i++)
  cout<<data[i]<<" ";
 cout<<endl;
}
int seqlist::find()
{
   int d;
   cout<<"要查找的元素:";
   cin>>d;
   int k=0;
   while (k<length&&data[k]!=d)
    k++;
   if (k>=length)
    return 0;
   else
       return 1;
}
int seqlist::duichen()
{
   int k;
   for(k=0;k<(length/2);k++)
   {
    if (data[k]==data[length-1-k])
    continue;    
       else
       break;
   }
   if(k==length/2)
    return 1;//对称
   else
    return 0;//不对称
   return 0;
}
int seqlist::paixu()
{
 int q,k;
 int e=0;
 for(k=0;k<length;k++)
 {
 if(data[k]%2!=0)
    {
      q=data[e];
      data[e]=data[k];
      data[k]=q;
         e++;
    }
 else
  continue;
 }
 cout<<"奇偶排序完毕"<<endl;
 return 0;
}
void seqlist::youxubiao()
{ cout<<"请输入有序表长度:"<<endl;
 cin>>length;
    int count=0,i=0,j,temp,t;
 cout<<"请输入有序表元素:"<<endl;
 cin>>data[i];i++;count++;
    do
 {
     cin>>temp;
  for(j=0;j<count;j++)
   if(temp<data[j])
   {
    for(t=count;t>j;t--)
       data[t]=data[t-1];
    data[j]=temp;
    count++;
    break;
   }
  if(j=count)
  {data[j]=temp;count++;}
  i++;
 }while(i<length);
}
int seqlist::hebing(seqlist a)
{
 for(int k=length;k<length+a.length;k++)
 {
  data[k]=a.data[k-length];
 }
    length=length+a.length;
 int q,j;
 for(int i=0;i<length-1;i++)
 {
  for(j=i+1;j<length;j++)
  {
   if(data[i]>data[j])
   {
    q=data[i];
    data[i]=data[j];
    data[j]=q;
   }
  }
 }
 cout<<"非递减合并表为:"<<endl;
 for(int k=1;k<=length;++k)
 {
  cout<<data[k-1]<<" ";
 }
 cout<<endl;
 return 0;
}
int main(void)
{
    seqlist a(20);
 a.input();
 a.printlist();
 cout<<"判断是否查询成功"<<endl;
    cout<<a.find()<<endl;
 a.duichen();
 a.paixu();
 a.printlist();
 
 seqlist b(20);
 b.youxubiao();
 b.printlist();
 
 seqlist c(10);
 c.youxubiao();
 c.printlist();
 b.hebing(c);
}
0
0

猜你在找
【直播】计算机视觉原理及实战—屈教授
【套餐】深度学习入门视频课程—唐宇迪
【套餐】Hadoop生态系统零基础入门--侯勇蛟
【套餐】嵌入式Linux C编程基础--朱有鹏
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】机器学习之凸优化——马博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19926次
    • 积分:1203
    • 等级:
    • 排名:千里之外
    • 原创:86篇
    • 转载:69篇
    • 译文:1篇
    • 评论:9条
    文章分类
    最新评论