栈和队列 习题.docxVIP

  • 4
  • 0
  • 约1.22千字
  • 约 2页
  • 2023-04-30 发布于上海
  • 举报
作业 3 及答案(第 3 章 栈和队列) 简述栈和线性表的差别。 简述队列和栈这两种数据类型的相同点和差异处。 假设以顺序存储结构实现一个双向栈 ,即在一维数组的存储空间中存在着两个栈 ,它们的栈底分别设在数组的两个端点。试编写实现这个双向栈 tws 的三个操作:初始化 inistack(tws)、入栈 push(tws,i,x)和出栈 pop(tws,i)的算法,其中 i 为 0 或 1,用以分别指示设在数组的两个栈, 并讨论按过程(正/误状态变量可设为变参)或函数设计这些操作算法各有什么优缺点。 参考答案:(答案不唯一) //-----双向栈的顺序存储表示 ----- #define STACK_INIT_SIZE 100; #define STACKINCREMENT 10; typedef struct{ SElemType *base[2]; SElemType *top[2]; int stacksize; }DuSqStack; Status InitStack(DuSqStack tws) {// 构 造 一 个 空 双 向 栈 S tws.base[0]=(SElemtype*)malloc(STACK_INIT_SIZE*sizeof(SElemtype)); if(!tws.base[0]) exit(OVERFLOW);//存储分配失败tws.base[1]

文档评论(0)

1亿VIP精品文档

相关文档