风雪傲月3728 发表于 2014-7-21 14:40:12

大家帮我看看哪儿出问题了


//线性表:由零个或多个数据元素组成的有限序列
//线性表的顺序存储元素,用一段地址连续的存储单元依次存储线性表的数据元素
//存取、查找操作所需要的时间为O(1),插入、删除所需要的时间为O(n)
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;

#define MAXSIZE 20
typedef int ElemType;
typedef struct
{
        ElemType *data;
        int length;      //线性表的当前长度
        int ListSize;
}SqList;


void InitList(SqList *L)
{
        L->data=(ElemType *)malloc(MAXSIZE*sizeof(ElemType));
        if(!L->data)
                exit(0);
        L->length=0;
        L->ListSize=MAXSIZE;
}


void DestoryList(SqList *L)
{
        free(L->data);
        L->data=NULL;
        L->length=0;
        L->ListSize=0;
}


void ClearList(SqList *L)
{
        L->length=0;
}

bool ListEmpty(SqList *L)
{
        if(L->length==0)
                return true;
        else
                return false;
}


ElemType GetElem(SqList L,int i)
{
        if(L.length==0||i<1||i>L.length)
        {
                return -1;
        }
        return L.data;
}


void InsertList(SqList L,int i,ElemType e)
{
        if(L.length>=MAXSIZE)
                return;
        if(i<1||i>L.length+1)
                return;
        for(int k=L.length;k>=i;k--)
        {
                L.data=L.data;
        }

        L.data=e;
        L.length++;
}

void DeleteList(SqList L,int i,ElemType *e)
{
        if(L.length==0)
                return;
        if(i<1||i>L.length)
                return;
        *e=L.data;
        if(i<L.length)
        {
                for(int k=i;k<L.length;k++)
                        L.data=L.data;
        }
        L.length--;
}

int ListLength(SqList L)
{
        return L.length;
}

int LocateElem(SqList L,ElemType e)
{
        int i;
        for(i=0;i<L.length;i++)
                if(L.data==e)
                        return i;
                return 0;
}



void UnionL(SqList La,SqList Lb)
{
        ElemType e;
        int La_len,Lb_len;
        La_len=ListLength(La);

        Lb_len=ListLength(Lb);

        cout<<La_len<<" "<<Lb_len<<endl;
        for(int i=1;i<=Lb_len;i++)
        {
                e=GetElem(Lb,i);
                cout<<LocateElem(La,e)<<" "<<endl;
                if(LocateElem(La,e)==0)
                {
                       
                        InsertList(La,++La_len,e);
                }
        }

        cout<<La_len<<endl;
        for(i=1;i<=La.length;i++)
                printf("%d ",La.data);
}



int main()
{
        SqList La,Lb;

        InitList(&La);
        InitList(&Lb);

        int i;

        printf("请给顺序线性表La中输入数据,以空格隔开:\n");
        for(i=1;i<=5;i++)
        {
                cin>>La.data;
                La.length++;
        }

        printf("请给顺序线性表Lb中输入数据,以空格隔开:\n");
        for(i=1;i<=5;i++)
        {
                cin>>Lb.data;
                Lb.length++;
        }

        UnionL(La,Lb);

        return 0;
}

Angel丶L 发表于 2014-7-21 15:16:00

你发下错误的提示啊。这样我们怎么看啊。
页: [1]
查看完整版本: 大家帮我看看哪儿出问题了