考研网 发表于 2018-12-7 17:05:09

2019考研数据结构C语言版详解答案:栈和队列(9)

《数据结构(C语言版)》考试内容两大类:概念,算法。自从计算机专业课统考以后,专业课考试题型分为2类,一类选择题,一类综合应用题。要想把数据结构这门专业课复习好,除了做练习题,还要掌握2019考研计算机数据结构(C语言版)基础知识,只有基础知识掌握牢固,才能在做数据结构算法题目时得心应手。本次新东方在线整理了数据结构C语言版答案详解,各位考生可以对照着题目与答案详解,把计算机专业课的数据结构复习一遍。
    3.15
假设以顺序存储结构实现一个双向栈,即在一维数组的存储空间中存在着两个栈,它们的栈底分别设在数组的两个端点。试编写实现这个双向栈tws的三个操作:初始化inistack(tws)、入栈push(tws,i,x)和出栈pop(tws,i)的算法,其中i为0或1,用以分别指示设在数组两端的两个栈,并讨论按过程(正/误状态变量可设为变参)或函数设计这些操作算法各有什么有缺点。
    试写一个算法,识别一次读入的一个以@为结束符的字符序列是否为形如‘序列1&序列2’模式的字符序列。其中序列1和序列2中都不含字符‘&’,且序列2是序列1的逆序列。例如,‘a+b&b+a’是属该模式的字符序列,而‘1+3&3-1’则不是。
    解:
    BOOL Symmetry(char a[])
    {
    int i=0;
    Stack s;
    InitStack(s);
    ElemType x;
    while(a!='&' && a){
    Push(s,a);
    i++;
    }
    if(a) return FALSE;
    i++;
    while(a){
    Pop(s,x);
    if(x!=a){
    DestroyStack(s);
    return FALSE;
    }
    i++;
    }
    return TRUE;
    }
页: [1]
查看完整版本: 2019考研数据结构C语言版详解答案:栈和队列(9)