队列问题求助

qq_43731685 2020-03-08 12:34:51
#include<stdio.h>
#include<stdlib.h>
#define maxsize 10
typedef int Elemtype;
typedef struct {
Elemtype *base;
int front;
int rear;
int size;
}queue;
queue *initList(){
queue *Q;
Q->base=(int*)malloc(maxsize*sizeof(int));
if(Q->base==NULL){
printf("创建失败");
exit(0);
}
Q->front=0;
Q->rear=0;
Q->size=maxsize;
return Q;
}
int getLength(queue *Q){
int length;
length =(Q->maxsize-(Q->front-Q->rear))%Q->size;
return length;
}
void creatList(queue *Q,int n){
int i;
if(n>maxsize){
printf("超出最大范围");
exit(0);
}
for(i=1;i<n;i++){
Q->base[Q->rear]=i;
if(Q->rear<Q->size-1){
Q->rear++:
}
else{
Q->rear=0;
}
}
}
void insertList(queue *Q,Elemtype e){
int len;
len=getLength(Q);
if(len>=Q->size){
printf("列表已满\n");
exit(0);
}
Q->base[Q->rear]=e;
if(Q->rear<Q->size-1){
Q->rear++:
}
else{
Q->rear=0;
}
}
void delList(queue *Q){
if(Q->front==Q->rear){
printf("列表为空\n");
exit(0);
}
if(Q->front<Q->size-1){
Q->front++:
}
else{
Q->front=0;
}
}
void printList(queue *Q){
while(Q->front<(Q-rear+1))
{
printf("%d ",Q->base[Q->front]);
Q->front++;
}
}
void main(){
queue *head;
int n=7
head=initList();
creatList(head,n);
}

刚学数据结构,一堆错误。。。。求指正!
...全文
77 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2020-03-08
  • 打赏
  • 举报
回复
queue *initList(){
queue *Q; //这里还没初始化Q,
Q->base=(int*)malloc(maxsize*sizeof(int)); //这里怎么能使用Q->base ?

改成
queue *initList(){
queue *Q = (queue*)malloc(sizeof(queue)); //先给Q申请内存
Q->base=(int*)malloc(maxsize*sizeof(int)); //再使用Q->base ?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧