知识大全 数据结构考研分类复习真题 第三章 答案[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相关参考