签到

05月06日
尚未签到

共有回帖数 0

    回望空城

    等级:
    http://pan.baidu.com/s/1bnBwG5D

    这是用c和c++写的超级马里奥游戏,欢迎下载体验!


    大神求教
    #includestdio.h
    #includestdlib.h
    typedef int elemType;
    struct SeqList{
    elemType *list;
    int size;
    int maxSize;
    };
    /*空间扩展为原来的2倍,并由p指针所指向,原内容被自动拷贝到p所指向的存储空间*/
    void againMalloc(struct SeqList*L)
    {
    elemType *p=(elemType*)realloc(L-list,2*L-maxSize*sizeof(elemType));
    if(!p)
    {/*分配失败则推出运行*/
    printf("存储空间分配失败!");
    exit(1);
    }
    L-list=p;/*使list指向新的线性空间*/
    L-maxSize=2*L-maxSize;/*把线性表空间大小修改为新的长度*/
    }
    /*从线性表L中删除第pos个元素*/
    elemType deletePosList(struct SeqList *L,int pos)
    {
    elemType temp;
    int i;
    temp=L-list[pos-1];
    for(i=pos;iL-size;i++)
    {/*用第pos+1个元素覆盖第pos个元素,并此后元素依此往前移动一位*/
    L-list[i-1]=L-list;
    }
    L-size--;/*线性表长度减小1*/
    return 1;
    }
    /*向线性表L的表尾插入元素x*/
    void insertLastList(struct SeqList *L,elemType x)
    {
    if(L-size==L-maxSize)/*重新分配更大的存储空间*/
    {
    againMalloc(L);
    }
    L-list[L-size]=x;/*把x插入到表尾*/
    L-size++;/*线性表的长度增加1*/
    }
    /*在线性表L中查找值与x相等的元素,若查找成功则返回其位置,否则返回-1*/
    int search(struct SeqList *L,elemType x)
    {
    int i;
    for(i=0;iL-size;i++)
    {
    if(L-list=x)
    {
    return i;
    }
    }
    return -1;
    }
    /*顺序输出线性表中的每个元素*/
    void traverseList(struct SeqList *L)
    {
    int i;
    for(i=0;iL-size;i++)
    {
    printf("%d",L-list);
    printf(" ");
    }
    return;
    }
    /*初始化线性表L,即进行动态存储空间分配并置L为一个空表*/
    void initList(struct SeqList *L,int ms)
    {
    /*检查ms是否有效,若无效的则退出运行*/
    if(ms=0)
    {
    printf("MaxSize 非法");
    exit(1);/*执行次函数中止程序运行*/
    }
    L-list=(elemType*)malloc(ms*sizeof(elemType));
    if(!L-list)
    {
    printf("空间分配失败!");
    exit(1);
    }
    L-maxSize=ms;/*设置线性表空间大小为ms*/
    L-size=0;
    return;
    }
    /*返回线性表L当前的长度,若L为空则返回0*/
    int sizeList(struct SeqList *L)
    {
    return L-size;
    }
    int main()
    {
    printf("集合A的元素为:(输入-1表示输入结束)");
    struct SeqList LA;
    int msa;
    initList(&LA,100);/*创建A线性表*/
    scanf("%d",&msa);
    while(msa!=-1)
    {
    insertLastList(&LA,msa);
    scanf("%d",&msa);
    }/*输入线性表A中元素*/
    printf("n集合B的元素为:(输入-1表示输入结束)");
    struct SeqList LB;
    int msb;
    initList(&LB,100);/*创建B线性表*/
    scanf("%d",&msb);
    while(msb!=-1)
    {
    insertLastList(&LB,msb);
    scanf("%d",&msb);
    }/*输入线性表B中元素*/

    printf("nA∪B-A∩B的结果为:");
    traverseList(&LA);
    printf("n");
    return 0;
    }
    求A∪B-A∩B A顺序表和B顺序表已经都写完了 需要的函数也定义了好了 思路是B中一个个元素去A中找如果找得到就删去A中该元素找不到就加在A表尾 请问主函数怎么接下去写

    楼主 2015-08-05 20:22 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知