| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:关于顺序表,这个要怎么修改呢
只看楼主 加入收藏
realll
Rank: 1
等 级:新手上路
帖 子:55
专家分:4
注 册:2009-7-23
结帖率:88.89%
收藏
 问题点数:0 回复次数:1 
关于顺序表,这个要怎么修改呢
图片附件: 游客没有浏览图片的权限,请 登录注册

这个显示结果错误····不知道怎么修改
//head
#include<iostream>
#include<stdlib.h>
using namespace std;
#define LIST_INIT_SIZE 10 /*线性表初始存储空间分配量*/
#define LISTINCREAMENT 2 /*线性表存储空间分配增量*/
#define ERROR 0
#define OK 1
typedef int Elemtype;

typedef struct
{
    Elemtype *elem;     /*存储空间地址*/
    int length;         /*当前长度*/
    int listsize;       /*当前分配的存储量*/
}Sqlist;

int Initlist(Sqlist &L );
int Get(Sqlist L,int i,Elemtype e);
int compare(Sqlist L,Elemtype e);
int Insertlist(Sqlist &L,int i,Elemtype e);
void Union(Sqlist &La,Sqlist Lb);

//fun
#include"head.h"
int Initlist(Sqlist &L )
{
    L.elem=new Elemtype[LIST_INIT_SIZE];
    if(!L.elem)
        return ERROR;
    L.length=0;
        L.listsize=LIST_INIT_SIZE;
        return OK;
}


int Get(Sqlist L,int i,Elemtype e)
{
    if(i<L.length)
        e=L.elem[i];
    return e;

}
int compare(Sqlist L,Elemtype e)
{
    for(int i=0;i<L.length;i++)
    {
        if(L.elem[i]==e)
        {
            return OK;
            break;
        }
        else
            return ERROR;
    }
}
int Insertlist(Sqlist &L,int i,Elemtype e)
{
    int *newbase,*p,*q;
    if(i<1||i<L.length+1)
        return ERROR;
    if(L.length>L.listsize)
    {

        newbase=(Elemtype *)realloc(L.elem,(L.listsize+LISTINCREAMENT)*(sizeof(Elemtype)));
        if(!newbase)
            return ERROR;
        L.elem=newbase;
        L.listsize+=LISTINCREAMENT;
        q=&L.elem[i-1];
        for(p=&L.elem[L.length-1];p>=q;p--)
        {
            *(p+1)=*p;
            *q=e;
            ++L.length;
            return OK;

        }
    }

}

void Union(Sqlist &La,Sqlist Lb)
{
    Elemtype e;
    int i;
    for(i=0;i<Lb.length;i++)
    {
        Get(Lb,i,e);
        if(!compare(La,e))
            Insertlist(La,i,e);
    }
}

//main
#include"head.h"
void main()
{
    Sqlist La;
    Sqlist Lb;
    La.length=5;
    Lb.length=5;

    Initlist(La);
    Initlist(Lb);
    for(int i=0;i<5;i++)
    {
        La.elem[i]=i+1;
    }
   
    for(int j=0;j<5;j++)
    {
        Lb.elem[j]=(j+5);
    }
    Union(La,Lb);
    for(int k=0;k<=9;k++)
        cout<<La.elem[k]<<endl;
    system("pause");
}



[ 本帖最后由 realll 于 2010-7-17 21:02 编辑 ]
搜索更多相关主题的帖子: include 线性表 空间 
2010-07-17 21:00
快速回复:关于顺序表,这个要怎么修改呢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017352 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved