网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月09日漏签0天
数据结构吧 关注:104,525贴子:883,667
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 6回复贴,共1页
<<返回数据结构吧
>0< 加载中...

求帮助,

  • 只看楼主
  • 收藏

  • 回复
  • ‖№小嚕
  • 散列表
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#define LIST_INIT_SIZE 1000
#define LISTINCREMENT 10
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
//顺序表的存储结构定义
typedef int Status;
typedef int ElemType;
typedef struct{
int *elem; //首地址
int length; //顺序表的长度
int listsize; //顺序表的存储容量
} SqList;
Status InitList_Sq(SqList &L){ // 顺序表的初始化 L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L.elem)exit(OVERFLOW);
L.length=0;
L.listsize=LIST_INIT_SIZE;
return OK;
}// InitList_Sq
Status ListInsert_Sq (SqList &L, int i, int e) //插入
{ //在顺序表的第i个位置插入值e为的元素
if(i<1||i>L.length+1)return ERROR;
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]);
for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;
*q=e;
++L.length;
return OK;
}// ListInsert_Sq
Status ListDelete_Sq(SqList &L, int i, int &e) //删除
{ //在顺序表的第i个位置删除一个元素,值在存进e中
if((i<1)||(i>L.length))return ERROR;
p=&(L.elem[i-1]);
e=*p;
q=L.elem+L.length-1;
foe(++p;p<=q;++p)*(p-1)=*p;
--L.length;
return OK;
}// ListDelete_Sq
int main( )
{
ElemType y;
SqList L;
int i,n;
InitList_Sq(L); /* 初始化线性表*/
printf("输入顺序表需存进的元素数量!\n");
scanf("%d",&n);
while(n<1 || n>10)
{
printf("请输入1--10之间的整数!\n");
scanf("%d",&n);
}
/* 以上循环语句的功能是控制输入数据个数的合法性,可以修改 */
printf("依次输入存进顺序表中的数据元素:\n");
for(i=1;i<=n;i++)
{
scanf("%d",&y);
ListInsert_Sq(L,i,y) ;
}
/* 以上循环语句的功能是依次输入要存进顺序表中的元素,并存进顺序表 */
printf("顺序表中的元素为:");
for(i=0; i<L.length; i++) printf("%d\t",L.elem[i]);
/* 以上循环语句的功能是依次输出顺序表中的元素*/
printf("\n");
printf("输入要删除元素的位置!\n");
scanf("%d",&n);
if(ListDelete_Sq(L,n,y)==OK) { printf("删除成功!"); printf("被删除的元素是: %d\n",y); }
printf("顺序表中的元素为:");
for(i=0; i<L.length; i++) printf("%d\t",L.elem[i]);
/* 以上循环语句的功能是依次输出顺序表中的元素*/
printf("\n");
system("pause");
return 0;
}
那些错误该怎么改正????Status InitList_Sq(SqList &L){像这个就有错误。。这些跟书上的算法一样不知道为什么弄到程序里面就错了。


  • ‖№小嚕
  • 散列表
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
那请问 该怎么改啊?


2025-05-09 22:29:43
广告
  • lower_scoring
  • 九宫格
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
编译环境是什么?感觉你这语法都没错啊。应该不是代码格式的问题吧、


  • ‖№小嚕
  • 散列表
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回数据结构吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示