当前位置: 网站首页>小程序开发>400电话办理

沧县微信公众号开发【沧县网络推广】沧县建站、沧县网站维护、沧县网页制作、沧县微信小程序代运营公司

发表日期: 2021-04-20 14:22:32 浏览次数:107

沧县微信公众号开发【沧县网络推广】沧县建站、沧县网站维护、沧县网页制作、沧县微信小程序代运营公司

沧县,隶属于河北省沧州市,位于位于河北省东南部、冀中平原东部。全县总面积15.33万公顷。 [1]  沧县属暖温带半湿润大陆性季风气候, [2]  县辖4个镇、15个乡, [3]  县政府驻沧州市新华区。 [4]  截至2018年末,沧县总人口740889人。 [2] 

北魏熙平二年(517年),分冀瀛二州之地置沧州。民国二年(1913年)沧州改名沧县,属直隶省渤海道。1983年11月,沧县属沧州市辖。 [2]  沧县境内京沪铁路、京福公路纵贯南北,朔黄铁路由沧县腹地东西穿过。 [5]  2011年11月,沧县被文化部命名为“中国民间文化艺术之乡”。 [6]  县境内有铁狮子、杜林登瀛桥、纪晓岚墓等旅游景点。 [7-8] 

2018年,沧县地区生产总值完成207.4亿元,增长8%。其中:第一产业22.4亿元,增长11.3%;第二产业78.9亿元,增长6%;第三产业106.1亿元,增长9.2%。 [9]  2020年9月,入选河北省食品产业强县(市、区)(培育型)名单。

函数B如图11-27b所示,在它之前的图11-27a中是一些重要的辅助要素,这些元素包括以下几点。

1. 常量FAILED被定义为函数B 没能在输入中找到平衡括号串时的返回值。FAILED的值与NULL相同。后者的值也表示一棵空树。不过,如果B成功的话,它返回的分析树不会为空,所以FAILED的这一定义是不可能有二义性的。

2. 类型NODETREE的定义。节点是由标号字段(字符),以及指向最左子节点和右兄弟节点的指针组成的。标号‘B’表示标号为B 的节点,‘(‘和’)’分别表示标号为左括号和右括号的节点,而‘e’则表示标号为ε 的节点。与5.3节中最左子节点右兄弟节点结构不同的是,这里为指向节点的指针选择的类型是TREE而非pNODE,因为这里的这些指针多用来作为树的表示。

3. 下面要描述的3个辅助函数和函数B 的原型声明。

4. 两个全局变量。第一个是parseTree,存放着由对B 的第一次调用返回的分析树。第二个是nextTerminal,它是输入游标,指向输入终结符串中的当前位置。请注意,nextTerminal具有全局性是很重要的,这样当B的一次调用返回时,输入游标所在的位置对执行这次调用的B的副本而言就是已知的。

5. main函数。在这一简单的演示中,mainnextTerminal置为指向特定测试串()()开头的位置,而且调用B 的解雇被放置在parseTree中。

6. 3个辅助函数可以创建树节点,而且,如果需要的话,可以组合子树以形成更大的树。它们分别是

(a) makeNode 0(x)函数创建的节点没有子节点,也就是说,它创建的是叶子节点,而且用符号x 作为该叶子节点的标号。返回的是由这一个节点组成的树。

(b) makeNode 1(x,t )函数创建的节点具有一个子节点。新节点的标号为x,而且其子节点是树t 的根节点。返回的是根节点为所创建节点的树。请注意,makeNode1要利用makeNode0创建根节点,然后让树t 的根节点成为所创建根节点的最左子节点。我们假设所有的最左子节点和右兄弟节点指针一开始都是NULL,而且它们就是,因为它们都是由makeNode0创建的,该函数显然将它们置为了NULL。因此,makeNode1并不一定要把NULL存储到树t 根节点的rightSibling字段中,不过这样做是明智的安全之举。

(c) 函数makeNode 4(x,t1,t2,t3,t4)创建的节点具有4个子节点。该节点的标号是x,而其子节点按照从左到右的次序分别是树t1t2t3t4的根节点,返回的是用所创建节点作为根节点的树。请注意,makeNode4要利用makeNode1创建一个新的根节点,并将t1附加到该节点上,然后用右兄弟节点指针把其余的树串联起来。

#define FAILED NULLtypedef struct NODE *TREE;struct NODE {
    char label;
    TREE leftmostChild, rightSibling;};TREE makeNode0(char x);TREE makeNode1(char x, TREE t);TREE makeNode4(char x, TREE t1, TREE t2, TREE t3, TREE t4);TREE B();TREE parseTree; /* 存放分析的结果 */char *nextTerminal; /* 输入字符串中的当前位置 */void main(){
    nextTerminal = "()()"; /* 在实际应用中,终结符串是从输入读取的 */

    parseTree = B();}TREE makeNode0(char x){
    TREE root;

    root = (TREE) malloc(sizeof(struct NODE));
    root->label = x;
    root->leftmostChild = NULL;
    root->rightSibling = NULL;
    return root;}TREE makeNode1(char x, TREE t){
    TREE root;

    root = makeNode0(x);
    root->leftmostChild = t;
    return root;}TREE makeNode4(char x, TREE t1, TREE t2, TREE t3, TREE t4){
    TREE root;

    root = makeNode1(x, t1);
    t1->rightSibling = t2;
    t2->rightSibling = t3;
    t3->rightSibling = t4;
    return root;}复制代码

图11-27(a) 递归下降分析器的辅助函数

      TREE B()
      {
 (1)      TREE firstB, secondB;
 (2)      if(*nextTerminal == '(') /* 遵循产生式2 */ {
 (3)          nextTerminal++;
 (4)          firstB = B();
 (5)          if(firstB != FAILED && *nextTerminal == ')') {
 (6)              nextTerminal++;
 (7)              secondB = B();
 (8)              if(secondB == FAILED)
 (9)                  return FAILED;
                  else(10)              return makeNode4('B',
                      makeNode0('('),
                      firstB,
                      makeNode0(')'),
                      secondB);
              }
              else /* 对B的第一次调用失败了 */(11)              return FAILED;
          }
          else /* 遵循产生式 1 */(12)          return makeNode1('B', makeNode0('e'));
      }


c51c866ffa1ab3457f2021e8bbdbcc1.jpg

沧县微信公众号开发沧县网络推广沧县建站、沧县网站维护、沧县网页制作、沧县微信小程序代运营公司

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878