码迷,mamicode.com
首页 > 其他好文 > 详细

顺序表的题目

时间:2020-03-22 19:40:19      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:int   顺序   oid   def   efi   style   namespace   data   nbsp   

#include<iostream>
using namespace std;
#define ElemType int
const int MaxSize=100;
typedef struct{
    ElemType data[MaxSize];
    int length;
}SqList;

//就地逆置
void reverse(SqList &L){
    ElemType temp;
    for(int i=0;i<L.length/2;i++){
        temp=L.data[i];
        L.data[i]=L.data[L.length-1-i];
        L.data[L.length-1-i]=temp;
    }
} 

//删除值为x的元素
void del_x(SqList &L,ElemType x){
    int k=0;
    for(int i=0;i<L.length;i++){
        if(L.data[i]!=x)
            L.data[k++]=L.data[i];
    }
    L.length=k;
}

//删除值在s、t之间的元素
void del_s2t(SqList &L,ElemType s,ElemType t){
    int k=0;
    for(int i=0;i<L.length;i++){
        if(L.data[i]>=s&&L.data[i]<=t) k++;
        else L.data[i-k]=L.data[i];
    }
    L.length-=k;
}

//删除有序表中重复的元素
void del_same(SqList &L){
    int k=0;
    for(int i=1;i<L.length;i++){
        if(L.data[i]!=L.data[k])
            L.data[++k]=L.data[i];
    }
    L.length=k+1;
}

//合并两个有序表
void merge(SqList A,SqList B,SqList &C){
    int i=0,j=0,k=0;
    while(i<A.length&&j<B.length){
        if(A.data[i]<=B.data[j])
            C.data[k++]=A.data[i++];
        else
            C.data[k++]=B.data[j++];
    }
    while(i<A.length)C.data[k++]=A.data[i++];
    while(j<B.length)C.data[k++]=B.data[j++];
    C.length=k;
}

int main(){
    SqList L;
    ElemType x;
    for(int i=0;i<10;i++){
        cin>>x;
        L.data[i]=x;
    }
    L.length=10;
//    reverse(L);
//    for(int i=0;i<L.length;i++)
//        cout<<L.data[i]<<" ";
//    cout<<endl;
//    del_x(L,77);
//    del_s2t(L,21,29);
//    for(int i=0;i<L.length;i++)
//        cout<<L.data[i]<<" ";
//    cout<<endl;

//    del_same(L);
//    for(int i=0;i<L.length;i++)
//        cout<<L.data[i]<<" ";
//    cout<<endl;    
    
    SqList H,G;
    for(int i=0;i<6;i++){
        cin>>x;
        H.data[i]=x;
    }
    H.length=6;
    merge(L,H,G);
    for(int i=0;i<G.length;i++)
        cout<<G.data[i]<<" ";
    cout<<endl;        
    return 0;
}
//77 51 34 21 8 14 77 19 28 54
//1 2 2 5 5 8 8 8 15 16
//1 3 5 5 7 8   

 

顺序表的题目

标签:int   顺序   oid   def   efi   style   namespace   data   nbsp   

原文地址:https://www.cnblogs.com/lyt888/p/12547735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!