更多“The root helps the tree take in water from the soil.(英译汉) ”相关问题
  • 第1题:

    阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。

    【说明】

    本程序利用非递归算法实现二叉树后序遍历。

    【函数】

    include<stdio.h>

    include<stdlib.h>

    typedef struct node{/*二叉树的结点数据结构类型*/

    char data;

    struct node *left;

    struct node *right;

    }BTREE;

    void SortTreelnsert(BTREE **tree, BTREE *s)

    {

    if(*tree==NULL)*tree=s;

    else

    if(s->data<(*tree)->data)

    SortTreelnsert((1),s);

    else if(s->data>=(*tree)->data)

    SortTreelnsert((2),s);

    }

    void TraversalTree(BTREE *tree)

    {

    BTREE *stack[1 000],*p;

    int tag[1000],top=0;

    p=tree;

    do{

    while(p !=NULL)

    {

    stack[++top]=p;

    (3);

    tag[top]=0; /*标记栈顶结点的左子树已进行过后序遍历*/

    }

    while(top>0&&(4))/*栈顶结点的右子树是否被后序遍历过*/

    {

    p=stack[top--];

    putchar(p->data);

    }

    if(top>0)/*对栈顶结点的右子树进行后序遍历*/

    {

    (5);

    tag[top]=1;

    }

    }while(top>0);

    }

    void PrintSortTree(BTREE *tree)

    {

    if(tree !=NULL)

    {

    printSortTree(tree->left);

    putchar(tree->data);

    pdntSortTree(tree->right);

    }

    }

    main()

    {

    BTREE *root=NULL, *node;

    char ch;

    ch=getchar();

    while(ch !='')

    {

    node=(BTREE*)malloc(sizeof(BTREE));

    node->data=ch;

    node->left=node->right=NULL;

    SortTreelnsert(&root, node);

    ch=getchar();

    }

    PrintSortTree(root);

    putchar('\n');

    TraversalTree(root);

    }


    正确答案:(1)&(*tree)->left (2)&(*tree)->right (3)p=p->left (4)tag[top]==1 (5)p=stack[top]->right
    (1)&(*tree)->left (2)&(*tree)->right (3)p=p->left (4)tag[top]==1 (5)p=stack[top]->right 解析:本题考查二叉树后序遍历的非递归实现。
    二叉树后序遍历的特点是首先按后序遍历根结点的左子树,然后按后序遍历根结点的右子树,再访问根结点。后序遍历得到的序列根结点总在最后,我们可以用栈结构来实现后序遍历。下面来具体[分析]程序。
    第(1)空很明显是函数SortTreeInsert()的第一个参数,此函数的功能是建立一棵排序二叉树,此空在条件判断语句下面,如果条件成立,说明待插入结点的值小于当前结点的值,根据排序二叉树的生成原理,应该把待插入结点插入到当前结点的左子树中,因此,此空的参数是指向当前结点左子树的地址。这里需要注意的是,这个参数是一个二重指针,需要在一重指针前加一个取地址操作符“&”。所以,此空答案为&(*tree)->left。
    第(2)空也是函数SortTreeInsert()的第一个参数,但调用这个函数的条件与上面不一样,此空是在待插入结点的值大于等于当前结点的值的时候调用函数,根据排序二叉树的生成原理,此时应该把待插入结点插入到当前结点的右子树中,因此,此空答案为&(*tree)->right。
    第(3)空在函数TraversalTree()中,此函数用来对树进行后序遍历,此空在一个循环体中,从程序中可以看出这个循环体的功能是将排序二叉树的所有左子树结点入栈,因此,在当前结点入栈后,接下来是它的孩子结点入栈,所以,此空答案为p=p->left。
    第(4)空是循环的判断条件,其作用在注释中已经给出,是判断栈顶结点的右子树是否被后序遍历过。从上面程序tag[top]=0表示栈顶结点的左子树已进行过后序遍历可以推断出,tag[top]的值是用来标记栈顶结点的左右子树已进行过后序遍历,因此,此空答案为tag[top]==1。
    第(5)空在条件判断语句下面,而条件判断语句为真表明要对栈顶结点的右子树进行后序遍历,那么就应该让当前需处理结点的指针指向栈顶结点的右孩子,而指向当前需要处理结点的指针变量是p,因此,此空答案为p=stack[top]->right。

  • 第2题:

    tree.add(6); tree.add(1); tree.add(1); 则遍历树集tree之后,可以输出1,1,6。()


    FEDCBA

  • 第3题:

    1、tree.add(6); tree.add(1); tree.add(1); 则遍历树集tree之后,可以输出1,1,6。()


    D 解析: 这一题通过语法就可选出是every,因为后面连接的词是单数,故选D。

  • 第4题:

    本题中定义了一个树型的通信录,窗El左侧是一个树,

    右侧是一个文本域,单击树的结点,则在右侧文本域中显示

    相关信息,如果单击的是树结点,则显示对应名字的电话

    信息。

    import javax.swing.*;

    import javax.swing.tree.*;

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.event.*;

    class Mytree2 extends JFrame

    {JTree tree=null;JTextArea text=new JTextArea

    (20,20);

    Mytree2()

    {Container con=getContentPane();

    DefauhMutableTreeNode root=new Default-

    MutableTreeNode("同学通信录");

    DefaultMutableTreeNode tl=new Default-

    MutableTreeNode("大学同学");

    DefaultMutableTreeNode t2=new Default-

    MutableTreeNode("研究生同学");

    DefaultMutableTreeNode tl l=new Default-

    MutatleTreeNode("陈艳");

    DefaultMutableTreeNode tl 2=new Default-

    MutableTreeNode("李小永");

    DefaultMutableTreeNode t2 1=new Defauh-

    MutableTreeNode("王小小");

    DefauhMutableTreeNode t2 2=new Defauh-

    MutableTreeNode("董小");

    setTitle("java2");

    root.add(t1);root.add(t2);

    tl.add(t1_1);tl.add(t1_2);t2.add(t2_1);t2.

    add(t2_2);

    tree=new JTree(root);

    JSerollPane scrollpane=new JScrollPane(text);

    JSplitPane splitpane=new JSplitPane(JSplitPane.

    HORIZONTAL SPLIT,

    true,tree,scrollpane);

    tree.addTreeSeleetionListener(this);

    con.add(splitpane);

    addWindowListener(new WindowAdapter()

    { public void windowClosing(WindowEvent e)

    {System.exit(0);}});

    setVisible(true);setBounds(70,80,200,300);

    }

    public void valueChanged(TreeSelectionEvent e)

    {if(e.getSouree()= =tree)

    {DefauhMutableTreeNode node=

    (DefaultMutableTreeNode)tree.getLastSelected-

    PathComponent();

    if(node.isLeaf())

    (String str= ;

    if(str.equals("陈艳"))

    (text.setText(str+":联系电话:0411-

    4209876");}

    else if(str.equals("李小永"))

    {text.setText(str+":联系电话:010-

    62789876");}

    else if(str.equals("王小小"))

    {text.setText(str+":联系电话:0430-

    63596677");)

    else if(str.equals("董小"))

    {text.setText(str+":联系电话:020-

    85192789");}

    }

    else

    {text.setText(node.getUserObject().toString

    ());

    }

    }

    }

    }

    public class java2

    {public static void main(String args[])

    {Mytree2 win=new Mytree2();win.pack();}

    }


    正确答案:
    第1处:implementsTreeSelectionListener第2处:node.toString()【解析】第1处实现了一个JTree的监听器接口;第2处将node转换成String型。

  • 第5题:

    在顶层窗口root中创建一个滑动条值为0到200的Scale控件,下列正确的是?

    A.Scale(root,from_=0,to=200)

    B.Scale(root,from =0,to=200)

    C.scale(root,from =0,to=200)

    D.scale(root,from_=0,to=200)


    (1)在figure的属性浏览器中设置Name为GUIDemo:Slider (2)先建立一个滑条对象,在属性浏览器中设置Max为50,Min为-50; (3)在滑条的两端各放置一个静态文本用于显示最大值和最小值; (4)滑条对象的callback函数中的内容为: val=get(handles.slider1,’value’); set(handles.edit1,’string’,num2str(val)); (5)在滑条上方放置一个文本框,用于显示滑块的位置所指示的数值,也可以在文本框中直接输入数值,callback函数中的内容为:

  • 第6题:

    14、二叉树的先序遍历的递归实现如下: template<class T> void BinaryTree<T>::PreOrder (BinaryTreeNode<T> *root) { if (root != NULL) { ; } } 则中间部分应为:

    A.Visit(root->value());PreOrder(root->leftchild());PreOrder(root->rightchild());

    B.PreOrder(root->leftchild());Visit(root->value());PreOrder(root->rightchild());

    C.PreOrder(root->rightchild());Visit(root->value());PreOrder(root->leftchild());

    D.PreOrder(root->leftchild());PreOrder(root->rightchild());Visit(root->value());


    正确