数据结构上机题目

原创 2016年05月30日 18:14:44

/*
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);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数据结构上机测试4.1:二叉树的遍历与应用

这个问题的大体解题思路是通过对先序排序的第一个数是每一层二叉树的根的特点,结合中序排列的特点,将先序排序中第一个把中序中的字符串分成两部分,左边是左叉树,右边是右叉树,然后递归调用它自己,一直到先序排...

数据结构上机题目

  • 2011-12-16 21:46
  • 18.40MB
  • 下载

数据结构上机实验(1) 顺序线性表

#include "stdafx.h" #include "malloc.h" #include "stdlib.h"#define OK 1 #define ERROR 0 #define TRUE...

数据结构上机测试2-1:单链表操作A

原blog被 误删TAT 大写的尴尬!!!!数据结构上机测试2-1:单链表操作A Problem Description 输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数...

数据结构上机测试4.1:二叉树的遍历与应用1

sdut原题链接数据结构上机测试4.1:二叉树的遍历与应用1 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 输入二叉树的先...

数据结构上机测试4.1:二叉树的遍历与应用1

数据结构上机测试4.1:二叉树的遍历与应用1 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Descript...

数据结构上机实验--有向图邻接表的建立,深度广度搜索及拓扑排序

1、以邻接表存储方式创建一个有向图,并对图进行深度遍历和广度遍历。 2、编写程序实现图的拓扑排序。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)