| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2006 人关注过本帖
标题:数据结构严蔚敏整理过后的顺序线性表调试怎么又22个错误
只看楼主 加入收藏
z974532452
Rank: 2
等 级:论坛游民
帖 子:23
专家分:41
注 册:2015-5-10
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:2 
数据结构严蔚敏整理过后的顺序线性表调试怎么又22个错误
#include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100 //线性表储存空间的初始分配
#define LISTINCREMENT  10  //线性表储存空间的分配增量
typedef struct
{
    ElemType *elem;  //存储空间基址
    int length;      //当前长度
    int listsize;    //当前分配的存储容量(以sizeof(ElemType)为单位)
}Sqlist;
Status InitList_Sq(Sqlist &L)//构造一个空的线性表L
{
    L.elem=(ElemType * )malloc(LIST_INIT_SIZE*sizeof(ElemType));
    if(!L.elem)
    exit(OVERFLOW);//存储分配失败
    L.length=0;   //空表长度为0
    L.listsize=LIST_INIT_SIZE;//初始存储容量
    return OK;
}//InitList_Sq
Status ListInsert_Sq(Sqlist &l,int i,ElemType e)//在顺序线性表L中第i个位置之前插入新的元素e,
                                                //i的合法值为1=<i=<ListLength_Sq(L)+1
{
    if(i<1||i>L.length+1)
    return ERROR;//i值不合法
    if(L.length>=L.listsize)//当前空间已满,增加分配
    {
        newbase=(ElemType * )realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
        if(!newbase)
        exit(OVERFLOW);//存储分配失败
        L.elem=newbase;//新基址
        L.listsize+=LISTINCREMENT;//增加存储容量
    }
    q=&(L.elem[i-1]);//q为插入位置
    for(p=&(L.elem[L.length-1]);p>=q;--p)
    *(p+1)=*p;//插入位置及之后的元素右移
    *q=e;//插入e
    ++L.length;//表长增1
    return OK;
}//ListInsert_Sq
Status ListDelete_Sq(Sqlist &L,int i,ElemType &e)//在顺序线性表L中删除第i个元素,并用e返回其值
                                                 //i的合法值为1=<i=<ListLength_Sq(L)
{
    if((i<1)||i>(L.length))
    return ERROR;//i值不合法
    p=&(L>elem[i-1]);//p为被删除的元素的位置
    e=*p;
    q=L.elem+L>length-1;//表尾元素的位置
    for(++P;p<=q;++p)
    *(p-1)=*p;//被删除元素之后的元素左移
    --L.length;//表长量减1
    return OK;
}//ListDelete_Sq
int LocateElem_Sq(Sqlist L,ElemType e,Status(*ElemType,ElemType))
//在顺序线性表L中查找第1个值与e满足compare()的元素的为序
//若找到,则返回其在L中的位序,否则返回0
{
    i=1;//i的初值为第1个元素的位序
    p=L.elem;//p的初值为第1个元素的存储位置
    while(i<=L.length&&!(*compare)(*p++,e))
    ++i;
    if(i<=L.length)
    return i;
    else
    return 0;
}//LocateElem_Sq
void MergeList_Sq(Sqlist La,Sqlist Lb,Sqlist &Lc)
//已知顺序线性表La和Lb的元素按值非递减排列
//归并La和Lb得到新的顺序线性表Lc,Lc的元素也按值非递减排列
{
    pa=La.elem;
    pb=Lb.elem;
    Lc.listsize=Lc.length=La.length+Lb.length;
    pc=Lc.elem=(ElemType * )malloc(Lc.listsize*sizeof(ElemType));
    if(!Lc.elem)
    exit(OVERFLOW);//存储分配失败
    pa_last=La.elem+La.length-1;
    pb_last=Lb.elem+Lb.lengtn-1;
    while(*pa<=pa_last&&pb<=pb_last)
    {
           //归并
        if(*pa<=*pb)
        *pc++=*pa++;
        else
        *pc++=*pb++;
    }
    while(pa<=pa_last)
   *pc++=*pa++ //插入La的剩余元素
   while(pb<=pb_last)
   *pc++=*pb++;//插入Lb的剩余元素
}//MergeList_Sq
这错误都在哪啊  我用的是codeblocks编译器
2015-10-13 13:33
ztory
Rank: 2
等 级:论坛游民
威 望:1
帖 子:15
专家分:62
注 册:2015-10-12
收藏
得分:10 
'&'是C++的,叫做引用,C中没有。
我就是用纯C看的这本书,这里栽了大跟头,你看看前边的 序
图片附件: 游客没有浏览图片的权限,请 登录注册

我的用纯C又写了一遍,在这里
https://
2015-10-15 16:58
z974532452
Rank: 2
等 级:论坛游民
帖 子:23
专家分:41
注 册:2015-5-10
收藏
得分:0 
回复 2楼 ztory
这是你的个人网站吗  为什么全是英文
2015-10-27 17:39
快速回复:数据结构严蔚敏整理过后的顺序线性表调试怎么又22个错误
数据加载中...
 
   



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

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