以下运算实现在链栈上的初始化,请在______处用适当的语句予以填充。 void InitStack(LStackTp*ls
以下运算实现在链栈上的初始化,请在______处用适当的语句予以填充。
void InitStack(LStackTp*ls){______;)
以下运算实现在链栈上的初始化,请在______处用适当的语句予以填充。
void InitStack(LStackTp*ls){______;)
以下运算实现在链栈上的进栈,请在______处用适当的语句予以填充。
void Push(LStackTp*ls,DataType x)
{ LStackTp*p;p=malloc(sizeof(LStackTp));
______;
p—>next=ls;
______;
}
以下运算实现在链栈上的退栈,请在______处用适当的语句予以填充。
int Pop(LStackTp*is,DataType*x)
{ LStackTp*P;
if(1s!=NULL)
{ p=ls;
*x=______;
ls=ls—>next;
______;
return(1);
} else return(0);
}
以下运算实现在顺序栈上的退栈,请在______处用适当的语句予以填充。
int Pop(SqStackTp*sq,DataType*x)
{ if(sq—>top==0){error("下溢");return(0);)
else{*x=______;
______;
return(1);
}
}
以下运算实现在链队上的入队列,请在______处用适当的语句予以填充。
void EnQueue(QueptrTp*lq,DataType x)
{ LqueueTp*P;
p=(LqueueTp*)malloc(sizeof(LqueueTp));
______=x;
p—>next=NULL;
(1q—>rear)—>next=______;
______;
}
以下运算实现在循环队上判队空,请在______处用适当的语句予以填充。
int EmptyCycQueue(CycqcleueTp sq)
{ if(______)retum(1);
else return(0);
}
以下运算实现在循环队上的入队列,请在______处用适当的语句予以填充。
int EnCycQueue(CycquetaeTp*sq,DataType x)
{ if((sq—>rear+1)%maxsize==______)
{error("队满");return(0);)
else{______;
______;
return(1);
}
}
/*本题要求实现带头链表的栈,写出Push 、Pop函数。 函数接口定义: Status Push(LinkList L, ElemType e); Status Pop(LinkList L, ElemType &e); 其中 L 和 e 都是用户传入的参数。 L 是带头结点的头指针; e 是数据元素。 其中 LinkList定义如下: typedef struct LNode { ElemType data; struct LNode * next; }LNode,*LinkList; 裁判测试程序样例: */ #include <malloc.h> #include <stdio.h> #define OK 1 #define ERROR 0 typedef int Status; typedef int ElemType; typedef struct LNode { ElemType data; struct LNode * next; }LNode,*LinkList; Status InitList(LinkList L); Status Push(LinkList L, ElemType e); Status Pop(LinkList L, ElemType &e); int main() { LinkList L; int x; InitList(L); //初始化链栈 Push(L,1); Push(L,2); Push(L,3); Pop(L, x); printf(" %d\n", x); return 0; } void InitList(LinkList &L) { L->next = NULL; } /* 请在这里填写答案 */
在下列栈的基本运算中,不是加工型运算的是______。
A.初始化
B.进栈
C.退栈
D.判栈空
在下面栈的基本运算中,不是加工型运算的是______。
A.初始化
B.进栈
C.退栈
D.判栈空
本题要求实现顺序栈,写出Push 、Pop函数。 函数接口定义: Status Push(SeqStack L, ElemType e); Status Pop(SeqStack L, ElemType &e); 其中 L 和 e 都是用户传入的参数。 L 是带头结点的头指针; e 是数据元素。 其中SeqStack定义如下: typedef struct { ElementType Data[MaxSize]; // 存储元素的数组 Position Top; //栈顶指针 }SeqStack; 待完善程序如下: #include <malloc.h> #include <stdio.h> #define MaxSize 100 /* 堆栈最大容量 */ #define OK 1 #define ERROR 0 typedef int Status; typedef int ElemType; typedef int Position; typedef struct { ElemType Data[MaxSize]; /* 存储元素的数组 */ Position top; /* 栈顶指针, 指示栈顶元素之后的位置 */ }SeqStack; Status StackEmpty(SeqStack s); Status Push(SeqStack L, ElemType e); Status Pop(SeqStack L, ElemType &e); int main() { SeqStack s; ElemType x; s.top = 0; //初始化链栈 Push(s, 1); Push(s, 2); Push(s, 3); while(!StackEmpty(s)) { Pop(s, x); printf(" %d\n", x); } return 0; } Status StackEmpty(SeqStack s) //判断栈s是否为空 { return s.top == 0; } /* 请在这里填写答案 */
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!