知识大全 数据结构考研分类复习真题 第三章 答案[11]

Posted 元素

篇首语:登山则情满于山,观海则意溢于海。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第三章 答案[11]相关的知识,希望对你有一定的参考价值。

   ( )每个栈仅用一个顺序存储空间时 操作简便 但分配存储空间小了 容易产生溢出 分配空间大了 容易造成浪费 各栈不能共享空间

  ( )多个栈共享一个顺序存储空间 充分利用了存储空间 只有在整个存储空间都用完时才能产生溢出 其缺点是当一个栈满时要向左 右栈查询有无空闲单元 如果有 则要移动元素和修改相关的栈底和栈顶指针 当接近栈满时 查询空闲单元 移动元素和修改栈底栈顶指针的操作频繁 计算复杂并且耗费时间

  ( )多个链栈一般不考虑栈的溢出(仅受用户内存空间限制) 缺点是栈中元素要以指针相链接 比顺序存储多占用了存储空间

   设top 和top 分别为栈 和 的栈顶指针

  ( )入栈主要语句

  if(top top == ) printf( 栈满\\n ); exit( );  case :top ++ SPACE[top ]=x;    //设x为入栈元素   case :top SPACE[top ]=x;

  出栈主要语句

  case if(top == ) printf( 栈空\\n ) exit( )   top return(SPACE[top + ])     //返回出栈元素   case if(top ==N)printf( 栈空\\n ) exit( )   top ++ return(SPACE[top ])     //返回出栈元素

  ( )栈满条件 top top =

  栈空条件 top = 并且top =N   //top = 为左栈空 top =N为右栈空

   设顺序存储队列用一维数组q[m]表示 其中m为队列中元素个数 队列中元素在向量中的下标从 到m 设队头指针为front 队尾指针是rear 约定front指向队头元素的前一位置 rear指向队尾元素 当front等于 时队空 rear等于m 时为队满 由于队列的性质( 删除 在队头而 插入 在队尾) 所以当队尾指针rear等于m 时 若front不等于 则队列中仍有空闲单元 所以队列并不是真满 这时若再有入队操作 会造成假 溢出 其解决办法有二 一是将队列元素向前 平移 (占用 至rear front ) 二是将队列看成首尾相连 即循环队列( m ) 在循环队列下 仍定义front=rear时为队空 而判断队满则用两种办法 一是用 牺牲一个单元 即rear+ =front(准确记是(rear+ )%m=front m是队列容量)时为队满 另一种解法是 设标记 方法 如设标记tag tag等于 情况下 若删除时导致front=rear为队空 tag= 情况下 若因插入导致front=rear则为队满

cha138/Article/program/sjjg/201311/22712

相关参考