<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Technical on Bro Nan&#39;s Journal</title>
    <link>https://liubonan.com/categories/Technical/</link>
    <description>Recent content in Technical on Bro Nan&#39;s Journal</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Sat, 25 Jul 2020 01:30:37 +0000</lastBuildDate>
    <atom:link href="https://liubonan.com/categories/Technical/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>商科小白的Python课EP5：根据模板自动批量生成文档</title>
      <link>https://liubonan.com/posts/python101-ep05/</link>
      <pubDate>Sat, 25 Jul 2020 01:30:37 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep05/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！大家好，我是码农楠哥。&lt;/p&gt;&#xA;&lt;p&gt;今天是Python入门课的第五节，上面的视频源是B站，海外的朋友可以前往YouTube观看&lt;a href=&#34;https://youtu.be/Lj_3EVmQa8g&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://youtu.be/Lj_3EVmQa8g&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;上节课我们讲解了循环语句，今天，让我们来通过一个真实的案例来加深一下对循环语句的理解。&lt;/p&gt;&#xA;&lt;p&gt;首先让我们看一下这个案例。很多做审计的同学经常需要向不同的公司和银行发送询证函。这类函件一般都有一个固定的模板，只需要根据不同的询证对象填入不同的公司名称，银行账号等信息。其实，在很多行业都存在类似的任务，比如说做行政工作的小伙伴或许经常需要向不同部门、不同的人员发送不同的通知；做人力资源工作的小伙伴需要根据不同职位、不同人员在预定的表格和邮件中填入不同的信息。以我们当前的询证函为例，我们想要向不同的银行发出不同的询证函。这个例子中，我们需要向五个银行发送询证函。所有银行的信息都记录在第一个和第二个表格当中。第一个表格中记录了每个银行的存款信息，第二个表格记录了每个银行的借款信息。我们希望生成5个新的表格，每个表格是一个可以直接打印的询证函，同时每份询证函中的公司名称、银行信息等内容都被进行了合理的替换。看到这里，不防稍微暂停一下视频，想想你要如何使用python程序完成这项工作呢？&lt;/p&gt;&#xA;&lt;p&gt;让我们先来分解一下任务。&lt;/p&gt;&#xA;&lt;p&gt;首先，我们的python程序需要能够对五个银行进行重复的操作，这就是一个非常典型的循环语句的使用场景。此处我们希望循环语句循环执行五次，每次都完成几乎相同的操作。&lt;/p&gt;&#xA;&lt;p&gt;其次，在每次执行循环语句时，我们希望首先将询证函模板复制到一个新的表格当中，之后把相应的数据插入到对应的单元格当中。具体到我们的信息，对于&lt;code&gt;COMPANY_NAME&lt;/code&gt;我们需要进行替换操作，对于日期我们希望替换为当前的日期，对于编号我们希望替换为当前的编号。对于银行账号，我们希望从deposit这个表格中获取存款账号，从due这个表格中获取借款的账号。当我对于五个银行都执行了上面描述的操作后，我们就生成了五份询证函。&lt;/p&gt;&#xA;&lt;p&gt;下面让我们来看一下如何完成程序。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; load_workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; load_workbook(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;example1.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;template &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;template&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;due &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;due&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;deposit &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;deposit&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#a5d6ff&#34;&gt;6&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;copy_worksheet(template)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A3&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; deposit[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;J2&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; deposit[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;C18&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; deposit[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;C&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;C24&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; due[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;C&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  target&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;title &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;letter&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; (i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;save(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;example1.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;当然，在实际当中创建询证函的流程要比我们的案例中更加复杂。比如，很可能同一家银行会有多个账号，我们需要在模板中填充的数据的格式、数值显示方式、精确度等要有不同的变化。再或者，有些时候生成Word文档、PDF文档甚至是Outlook邮件会更加简化工作流程。我们在后续的课程中会逐步的讲解到如何使用Python完成这些任务。&lt;/p&gt;&#xA;&lt;p&gt;以上就是这节课的全部内容。每天十分钟，编程很轻松。谢谢大家收看，我们下期再见。&lt;/p&gt;</description>
    </item>
    <item>
      <title>商科小白的Python课EP4：循环语句助你迅速提升编程效率</title>
      <link>https://liubonan.com/posts/python101-ep04/</link>
      <pubDate>Mon, 29 Jun 2020 19:13:07 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep04/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！大家好，我是码农楠哥。&lt;/p&gt;&#xA;&lt;p&gt;今天是Python入门课的第四节，上面的视频源是B站，海外的朋友可以前往YouTube观看&lt;a href=&#34;https://youtu.be/IQJoDbjt1P8&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://youtu.be/IQJoDbjt1P8&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;在前面的课程中，我们使用的绝大多数语句都是赋值语句。对于赋值语句，每条语句执行一次，所以如果想要重复的执行10遍某一条语句，就要将某一条语句复制10遍。比如&lt;code&gt;print(123)&lt;/code&gt;会在屏幕上输出123，如果想要输出10遍123，就需要将&lt;code&gt;print(123)&lt;/code&gt;复制10遍写在程序中。显然，这样的方式是非常低效的。循环语句则解决了这个问题。&lt;/p&gt;&#xA;&lt;h2 id=&#34;for循环语句&#34;&gt;&#xA;  for循环语句&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#for%e5%be%aa%e7%8e%af%e8%af%ad%e5%8f%a5&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;for循环语句的基本结构如下。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#a5d6ff&#34;&gt;10&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  print(&lt;span style=&#34;color:#a5d6ff&#34;&gt;123&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;for循环语句中，有三个组成部分：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;range(10)&lt;/code&gt;是循环的范围。循环的范围一般是一个list，比如&lt;code&gt;[1,2,3,5,8,10]&lt;/code&gt;。而&lt;code&gt;range(10)&lt;/code&gt;函数则方便的返回了一个由10个元素构成的、从0到9的连续自然数构成的链表。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;i&lt;/code&gt;是循环变量，它的值在每次循环执行中依次为循环范围中的值。如果循环范围是&lt;code&gt;[1,2,3,5,8,10]&lt;/code&gt;，那么循环会执行6次，&lt;code&gt;i&lt;/code&gt;的值依次为1，2，&amp;hellip;，10。如果循环范围为&lt;code&gt;range(10)&lt;/code&gt;，那么循环会执行10次，&lt;code&gt;i&lt;/code&gt;的值依次为0，1，2，3，&amp;hellip;，9。&lt;/li&gt;&#xA;&lt;li&gt;循环执行的语句。从第二行开始，以两个空格为开头的语句都是循环执行的部分。每次循环执行时，这部分语句都会重复执行一遍。上面的例子中，&lt;code&gt;print(123)&lt;/code&gt;会重复执行10遍。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;依此类推，如果想依次输出一个从0到9的等差数列，则可以通过如下程序实现。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;in&lt;/span&gt; range(&lt;span style=&#34;color:#a5d6ff&#34;&gt;10&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  print(i)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;while循环语句&#34;&gt;&#xA;  while循环语句&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#while%e5%be%aa%e7%8e%af%e8%af%ad%e5%8f%a5&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;for循环语句多用于已知循环次数的场景。在很多时候，我们 并不知道总共要循环多少次，所以使用while循环语句将更加方便。&lt;/p&gt;&#xA;&lt;p&gt;while循环语句基本结构如下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;10&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  print(i)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; i &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;while循环有两个部分构成：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;i &amp;lt; 10&lt;/code&gt;是执行条件（或终止条件）。当该部分条件满足时，重复执行指定的语句。如果条件不再满足，则终止执行。&lt;/li&gt;&#xA;&lt;li&gt;循环执行的语句。从第二行开始，以两个空格为开头的语句都是循环执行的部分。每次循环执行时，这部分语句都会重复执行一遍。上面的例子中，&lt;code&gt;print(i)&lt;/code&gt;和&lt;code&gt;i = i + 1&lt;/code&gt;就会重复的执行。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;需要注意的是，while循环语句不会自动的改变循环变量的值。你必须使用&lt;code&gt;i = i + 1&lt;/code&gt;语句主动地将循环变量的值进行改变，才可以保证程序不进入死循环。&lt;/p&gt;&#xA;&lt;p&gt;如上内容就是循环语句的基本结构，更加详细的内容请见今天的视频。下节课我们将会使用一个案例来看一下如何应用循环语句。每天十分钟，编程很轻松！我们下次见！&lt;/p&gt;</description>
    </item>
    <item>
      <title>商科小白的Python课EP3：十分钟自动化生成报表</title>
      <link>https://liubonan.com/posts/python101-ep03/</link>
      <pubDate>Fri, 26 Jun 2020 05:52:44 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep03/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！大家好，我是码农楠哥。&lt;/p&gt;&#xA;&lt;p&gt;今天是Python入门课的第三节，上面的视频源是B站，海外的朋友可以前往YouTube观看&lt;a href=&#34;https://youtu.be/9V5Wgk_v3r8&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://youtu.be/9V5Wgk_v3r8&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;上节课我们介绍了Python当中的不同的数据类型，今天让我们来看一个对Excel表格进行操作的例子。&lt;/p&gt;&#xA;&lt;p&gt;很多金融界的从业者（或其他一些相关产业的从业者）经常会遇到这样一个使用场景：每天或者每周要为组里准备一个报表，该报表要从若干个文件中读取一些数据。比如说，某个报表要从三个表格文件中读取数据，然后对这些数据进行一些运算，比如对他们求个平均值，或者把它里面的一些内容进行拼接，最后按固定的格式生成一个报表。对于这样的任务，其实就非常适合用Python程序来解决。这是因为，如果数据源的格式是相对固定的话，那么你写一个Python程序，每天运行一次就可以重复性的完成这项任务，再也不需要每天手动的去粘贴复制。&lt;/p&gt;&#xA;&lt;p&gt;我们应该先用动态创建一个文件，和以前一样，我们首先要引用包。因为这次我们要从不同的表格里读取数据，所以我们要用openpyxl包里的另外一个函数&lt;code&gt;load_workbook()&lt;/code&gt;。该函数可以用于读取已经存在的Excel表格。整个程序要完成如下步骤：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;打开指定的Excel表格。该步骤可以用&lt;code&gt;load_workbook()&lt;/code&gt;完成。&lt;/li&gt;&#xA;&lt;li&gt;读取指定单元格的数据。读取一个单元格的数据，可以使用&lt;code&gt;ws[&amp;quot;A1&amp;quot;].value&lt;/code&gt;完成。其中&lt;code&gt;ws&lt;/code&gt;保存的是当前活跃的表格，A1是指定的单元格&lt;/li&gt;&#xA;&lt;li&gt;将读取的数据输出到屏幕上。我们可以使用以前讲解过得&lt;code&gt;print()&lt;/code&gt;函数完成。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;整个程序如下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; load_workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stock_wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; load_workbook(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;stocks.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stock_ws &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; stock_wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aapl &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; stock_ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;Today&amp;#39;s price is: &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; aapl&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我们还可以将结果输出到另一个新的Excel表格当中。这需要使用我们第一节课讲到的&lt;code&gt;save()&lt;/code&gt;函数。比如说，下面的程序将结果写到了一个新的文件当中。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; Workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; load_workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stock_wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; load_workbook(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;stocks.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;stock_ws &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; stock_wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aapl &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; stock_ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B3&amp;#34;&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;test_wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; load_workbook(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;test.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; Workbook()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; aapl&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;save(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;report.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;Today&amp;#39;s price is: &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; aapl&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;Another value: &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;%s&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt; test_wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B2&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;value)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;以上就是今天的课程。今天这节课我们第一次使用一个更加具象的案例，向大家介绍了如何使用Python来生成固定格式的报表。随着我们学习的深入，我们的Python程序将逐渐可以完成更加复杂、更加智能的任务。&lt;/p&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！我们下次见！&lt;/p&gt;</description>
    </item>
    <item>
      <title>商科小白的Python课EP2：你只需了解这三种数据类</title>
      <link>https://liubonan.com/posts/python101-ep02/</link>
      <pubDate>Fri, 19 Jun 2020 18:01:24 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep02/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！大家好，我是码农楠哥。&lt;/p&gt;&#xA;&lt;p&gt;今天是Python入门课的第二节，上面的视频源是B站，海外的朋友可以前往YouTube观看:&lt;a href=&#34;https://youtu.be/D3vywcI3xOo&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://youtu.be/D3vywcI3xOo&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;p&gt;首先让我们来写一个Python小程序，输出一个简单的表格。与上次不同的是，我们今天想使用我们常用的和笔记本编辑软件，创建一个新的文件来完成Python程序。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt; Workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; Workbook()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;GOOG&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A2&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;MSFT&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B1&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;100&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B2&amp;#34;&lt;/span&gt;] &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;200&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;save(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;stocks.xls&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存文件后，运行程序。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python second_program.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;运行程序后打开输出的Excel表格，大家可以看到我们想要输出的内容，&lt;/p&gt;&#xA;&lt;h2 id=&#34;python程序的基本结构&#34;&gt;&#xA;  Python程序的基本结构&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#python%e7%a8%8b%e5%ba%8f%e7%9a%84%e5%9f%ba%e6%9c%ac%e7%bb%93%e6%9e%84&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;打开我们刚才写的程序，可以看到程序当中有几个基本的元素。首先，第一部分是对于包的引用，在编程当中，我们希望能尽可能多的复用其他人的已经完成的工作，为此，我们通常需要引用已经写好的包（package）。这些包通常有非常丰富的功能：简单的包可以处理表格；复杂的包甚至可以做出3D的图形。因此，我们Python程序中的第一部分一般都是引用其他人的工作，如果你是引用整个包的，可以用&lt;code&gt;import openpyxl&lt;/code&gt;，如果你要是引用包中的某个具体的内容，可以用&lt;code&gt;from openpyxl import Workbook&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;紧接着，程序从第一行可执行的代码开始运行。该程序中所有的的内容都是表达式。我们可以看到基本的表达式是由三部分构成的，&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;等号的左侧，是变量名，&lt;/li&gt;&#xA;&lt;li&gt;等号（等号是运算符），我们对于运算符的意义定义为：&lt;strong&gt;将等号右侧的值赋值给左侧变量&lt;/strong&gt;，这和数学中的等号是不一样的，数学中的等号是相等的意思，而在Python当中等号是赋值的意思&lt;/li&gt;&#xA;&lt;li&gt;右侧是调用库当中的函数。函数呢会产生一个值，我们为了把值记录下来，因此需要把它复制给左边变量&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;大家可以看到，这就是Python程序中的基本结构。首先引用你需要用到的包，之后是一系列语句语句，这些语句有很多形式，该样例程序中主要有两种，一种是赋值，一种是函数的调用。&lt;/p&gt;&#xA;&lt;h2 id=&#34;python中的数据类型&#34;&gt;&#xA;  Python中的数据类型&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#python%e4%b8%ad%e7%9a%84%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;下面让我们来看一下拍摄当中的数据类型，让我们回顾一下刚才写的小程序，大家可以注意到里有几种不同的数据类型：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;首先是股票的代码，比如说GOOG，它是用双引号引用了起来，包括下面的文件名也用双引号引用起来。这是一种重要的数据类型，称为字符串（string）。&lt;/li&gt;&#xA;&lt;li&gt;其次是股票的价格，比如100，这是一种数值类型，&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;我们下面就来看一下Python当中常用的几种数据类型。&lt;/p&gt;&#xA;&lt;p&gt;对于字符串来说，我们一般是用单引号或者双引号，将字符串囊括在其中，字符串可以是英文字母，可以是符号，可以是其他各种语言。对于字符串来说，有几种基本的操作，比如说我们可以使用函数将字符串中的所有字符变成大写（&lt;code&gt;s.upper()&lt;/code&gt;）或者小写（&lt;code&gt;s.lower()&lt;/code&gt;），去除字符串两端的空格（&lt;code&gt;s.strip()&lt;/code&gt;），或者对字符串的内容进行替代（使用&lt;code&gt;%s&lt;/code&gt;作为占位符）。&lt;/p&gt;&#xA;&lt;p&gt;Python当中的数值类型的常用的有两种：一种是整型int，它只有数的整数部分，还有一种东西叫做浮点型float，是有小数部分的，比如&lt;code&gt;a=1&lt;/code&gt;整型，如果是&lt;code&gt;b=1.0&lt;/code&gt;（注意此处有小数点），虽然小数点后面是0，但是它是浮点型的，他们&lt;code&gt;a&lt;/code&gt;、&lt;code&gt;b&lt;/code&gt;是两种不同的类型。数值类型之间可以进行四则运算。&lt;/p&gt;&#xA;&lt;p&gt;最后，我想跟大家讲的是list类型。在很多编程语言当中的一般，我们会先讲数组，之后再说list类型。但是Python中大家更多地使用的是list类型，也称为列表、链表类型。假设你现在有一组数据，而不是一个单一数据，那么你通常需要一个变量来对一组数据进行管理的，list类型就可以帮你完成这一个任务。list类型的表示方式是&lt;code&gt;a = [1,2,3]&lt;/code&gt;，如果你想在&lt;code&gt;a&lt;/code&gt;后面再加list，那你可以再加一个列表，如&lt;code&gt;a = [1,2,3] + [4]&lt;/code&gt;。我们还有一些常用的函数，比如说，&#xA;&lt;code&gt;len()&lt;/code&gt;函数可以判断链表中元素的个数。而如果我们想访问列表当中的单一数据，我们需要使用&lt;code&gt;a[0]&lt;/code&gt;的形式。大家注意，在我时想要调用链表a的第一个元素的时候，我们向方括号当中写入了0。此处的0代表的是元素的位置。在计算机当中，对于一个序列、一个链表或是一个数组，&lt;strong&gt;第一个位置的编号都是0&lt;/strong&gt;，这是和数学中不一样的：数学中一般是从1开始，但是在计算机当中我们都是从0开始数的。&lt;/p&gt;&#xA;&lt;p&gt;以上就是今天的课程。今天节课我们讲了Python当中各种不同的数据类型，有整型int，有浮点型float，还有字符串string，列表list。Python当中还有很多复杂的数据类型，希望在后面的课程中逐渐的将些复杂的数据类型介绍给大家。&lt;/p&gt;&#xA;&lt;p&gt;每天十分钟，编程很轻松！我们下次见！&lt;/p&gt;</description>
    </item>
    <item>
      <title>商科小白的Python课EP1：零基础十分钟写Python</title>
      <link>https://liubonan.com/posts/python101-ep01/</link>
      <pubDate>Wed, 17 Jun 2020 00:39:59 +0000</pubDate>
      <guid>https://liubonan.com/posts/python101-ep01/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;p&gt;大家好，我是码农楠哥。楠哥是一名软件工程师，现在效力于某大型科技公司，同时在纽约城市大学兼职授课。经常有一些朋友问我，非IT行业从业者是否需要学习一点编程呢？看到我有些许的授课经验，还有一些朋友还会让我给零基础自学编程的同学提出一些入门的建议。经过一段时间的思考，楠哥决定录制一些简单的视频，帮助非IT从业者从零基础学习编程。&lt;/p&gt;&#xA;&lt;p&gt;楠哥一直以来都认为，编程与烹饪、开车、外语一样，如果平时不使用，那么学习的再认真、再努力早晚都会忘记。所以，楠哥的视频不求多求全，而是希望让非IT从业人员从第一期视频开始，就可以用小程序处理实际问题。楠哥打算第一个系列将帮助金融业的从业人员使用python程序方便快捷的处理excel表格。整个系列会录制8期，每期10分钟左右。希望能让各位真的可以体会到“每天十分钟，编程很轻松！”&lt;/p&gt;&#xA;&lt;p&gt;在视频中，楠哥会进行详细的讲解，在此处更新的的文章，则用于帮助大家进行课后复习。本系列的课程已经为商科同学进行了极大的简化，因此，楠哥强烈建议大家至少观看一次视频，以便更加全面的掌握细节。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;文章默认链接的视频是B站的视频源，如果你身在海外，也可以&lt;a href=&#34;https://youtu.be/3fKnmptDdh4&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;前往Youtube观看&lt;/a&gt;。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;python安装mac用户可以跳过此步&#34;&gt;&#xA;  Python安装（Mac用户可以跳过此步）&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#python%e5%ae%89%e8%a3%85mac%e7%94%a8%e6%88%b7%e5%8f%af%e4%bb%a5%e8%b7%b3%e8%bf%87%e6%ad%a4%e6%ad%a5&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;和所有的系统软件一样，如果你想使用编程语言，首先需要打开浏览器下载、安装该语言所需要的软件（即该语言的编译器）。编程语言分为两种：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;解释性编程语言：写一行，计算机执行一号&lt;/li&gt;&#xA;&lt;li&gt;编译型编程语言：先写完所有程序，然后使用编译器对程序从头到尾进行一次编译，之后再运行程序&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Python语言比较简单，属于解释性编程语言。所以，我们可以一边编程，一边查看编的结果。&lt;/p&gt;&#xA;&lt;p&gt;下载Python语言我们首先需要打开浏览器，打开Python语言的官网&lt;a href=&#34;http://python.org&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://python.org&lt;/a&gt;，下载最新版本下载之后进行安装即可。和所有软件的安装方法都一样，大家只需要根据提示进行安装即可，如果你是使用Windows 10的用户，楠哥这里推荐另外两种更简易的安装方式：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;通过命令行直接输入python。这样的会打Windows Store可以一键化的安装。&lt;/li&gt;&#xA;&lt;li&gt;如果要是打算学习更加复杂的程序的同学可以安装一个Python的集成开发环境（IDE）。如果说命令行是Windows的画图工具的话，那么集成开发环境就是更高级的Photoshop。很多厂商都开发了自己的IDE，楠哥这里推荐一个叫做PyCharm的软件，这是这两年比较流行的一个。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;启动python&#34;&gt;&#xA;  启动Python&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%90%af%e5%8a%a8python&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;在Windows中启动Python我们有两种方式，第一种是通过传统的命令行cmd，还有一种方式是可以通过更高级的、提供更丰富功能的PowerShell。在Mac操作系统中，可以使用Terminal程序。为了给大家更清晰地展示Python的丰富功能，本文后续会使用PowerShell进行演示。&lt;/p&gt;&#xA;&lt;p&gt;在PowerShell中输入python就可以进入Python的编程界面。第一个程序，我们可以写一个简单的运算。比如如下程序：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;表示我们得到了一个名称（变量名）是a其值是1的变量。如果输入下列程序，&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;系统会输出2。&lt;/p&gt;&#xA;&lt;p&gt;如果输入&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;b&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;b&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;系统会给出运算结果3。这几个程序就是最简单的Python程序。&lt;/p&gt;&#xA;&lt;p&gt;我们可以通过exit()或者通过快捷键Ctrl-Z或者Ctrl-D退出Python。&lt;/p&gt;&#xA;&lt;p&gt;至此，我们通过输入一行命令、让系统计算一次的方式完成了第一个Python程序。有的时候，你会需要写一个比较复杂的程序，这个时候你则更需要把所有的命令写在一个文件当中让Python直接执行这个文件。我们可以用任何名字来命名我们的文件，但是一般的为了遵循一定的规则，Python程序的结尾通常以.py为结尾，即扩展名是为py。所以，如果我们要写一个简单的程序，那么我们就需要用notepad创建一个新的文件来编写程序。因为我们现在要执行一个大文件，让Python从头到尾执行该程序，那么我们需要用到一个函数print来输出结果。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;b&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(a&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;b)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;该课程是面向非专业程序员、特别是金融界的分析师进行设置的，所以我们主要是以Excel表格为载体进行Python的讲解。用Python控制Excel最简单的方法是使用openpyxl包。在普通安装情况下，这个包是没有安装的。所以我们需要使用下面这条命令去安装这个包：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pip install openpyxl&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这个包每台电脑只需要运行一次即可。&lt;/p&gt;&#xA;&lt;p&gt;Excel表格的基本结构是：首先有一个文件，文件打开之后会有若干个表格。我们可以通过一个简单的程序来完成这个过程。比如如下程序创建了一个新的Excel文件，并对他的单元格A1和B2文件。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#ff7b72&#34;&gt;openpyxl&lt;/span&gt; improt Workbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; Workbook()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt; wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;active&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ws[&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;B2&amp;#34;&lt;/span&gt;]&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wb&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;.&lt;/span&gt;save(&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#34;test.xlsx&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;总结&#34;&gt;&#xA;  总结&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%80%bb%e7%bb%93&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;回顾一下今天的课程。我们安装了Python，分解了Python写程序的两种方法：第一种是解释型的编编程编写，第二种是写到一个文件里然后一次性的执行。我们使用openpyxl创建一个新的Excel表格并完成了最简单的赋值。下节课开始，我们将继续以Excel表格为载体，深入讲解Python的基础知识。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用rclone跨平台同步存储数据</title>
      <link>https://liubonan.com/posts/shi-yong-rclonetong-bu-duo-ge-yun-cun-chu/</link>
      <pubDate>Mon, 25 Sep 2017 02:12:23 +0000</pubDate>
      <guid>https://liubonan.com/posts/shi-yong-rclonetong-bu-duo-ge-yun-cun-chu/</guid>
      <description>&lt;p&gt;如今，各家巨头争相开发云存储平台，加之多年前出现的Onedrive，Google Drive，Dropbox等一系列消费者级别的云存储产品，相信不少人已经把云存储产品作为个人资料保管场所。但是，随着云存储产品的多样化，消费者逐步开始面临如下问题：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;不同的产品存储于不同的平台，难以管理；&lt;/li&gt;&#xA;&lt;li&gt;如果某个云产品停止服务，个人数据面临着丢失和被冻结的风险。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;为了解决如上问题，我们可以将一份数据存储于多个平台之上，并进行定期更新。rclone为此提供了一个简便的解决方案。rclone是开源软件，可以在rclone.org进行下载预编译版本。&lt;/p&gt;&#xA;&lt;h2 id=&#34;下载与配置&#34;&gt;&#xA;  下载与配置&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e4%b8%8b%e8%bd%bd%e4%b8%8e%e9%85%8d%e7%bd%ae&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;笔者在自己的Linux开发服务器上下载了该程序。安装结束后，运行如下命令进行配置：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Shell&#34; data-lang=&#34;Shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rclone config&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配置过程十分简单，只需要设置好各平台的Authorization Token即可（消费者级的云存储产品只需使用用户名密码登陆即可自动获取token）。笔者分别配置了Google Drive，Onedrive和Google Cloud Storage。&lt;/p&gt;&#xA;&lt;h2 id=&#34;创建脚本&#34;&gt;&#xA;  创建脚本&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%88%9b%e5%bb%ba%e8%84%9a%e6%9c%ac&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;笔者的计划是天凌晨12点，将笔者Onedrive下名为&lt;code&gt;Important&lt;/code&gt;的文件夹单向同步到Google Drive和GCS，因此笔者创建了如下脚本，存于/bin/scripts/sync_important.sh.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Shell&#34; data-lang=&#34;Shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-weight:bold;font-style:italic&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-weight:bold;font-style:italic&#34;&gt;&lt;/span&gt;rclone sync onedrive:/Files/Important google-cloud:smzfeng/Important --log-file&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;/tmp/rclone_sync_important.log -v&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rclone sync onedrive:/Files/Important google-drive:/Important --log-file&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;/tmp/rclone_sync_important.log -v&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;运行该脚本，可以顺利进行同步。&lt;/p&gt;&#xA;&lt;h2 id=&#34;定时运行&#34;&gt;&#xA;  定时运行&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%ae%9a%e6%97%b6%e8%bf%90%e8%a1%8c&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;为了使得该脚本每日定时运行，我们可以创建一个本机的cron job。在命令行中输入&lt;code&gt;crontab -e&lt;/code&gt;进行配置，并在脚本尾部添加：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Shell&#34; data-lang=&#34;Shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;0&lt;/span&gt; * * * /bin/scripts/sync_important.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存后，该脚本就会于每日零时零分自动运行。运行的日志可在&lt;code&gt;/tmp/rclone_sync_important.log&lt;/code&gt;获取。&lt;/p&gt;</description>
    </item>
    <item>
      <title>小站更新</title>
      <link>https://liubonan.com/posts/xiao-zhan-geng-xin/</link>
      <pubDate>Sun, 13 Aug 2017 07:02:48 +0000</pubDate>
      <guid>https://liubonan.com/posts/xiao-zhan-geng-xin/</guid>
      <description>&lt;p&gt;技术更新真是日新月异，随着Wordpress的日益臃肿，新生代的博客系统的优势越来越明显。本次更新完成选择了&lt;a href=&#34;https://ghost.org/&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;ghost&lt;/a&gt;，实测访问速度和并行性能超越了Wordpress整整一个数量级。本次更新的详细更新日志如下：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;合并了原有的楠哥小站、楠哥博客和个人信息页。&lt;/li&gt;&#xA;&lt;li&gt;删除了部分个人博客，主要集中于包含周边朋友全名的博客。&lt;/li&gt;&#xA;&lt;li&gt;后台实现了Web和DB的分离。&lt;/li&gt;&#xA;&lt;li&gt;因为Ghost的限制，更新时丢失了所有过往的评论。新的评论系统已采用最新的云评论系统，无需注册。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;此博以后将专注于技术分享和Career方面的讨论。欢迎大家继续关注。&lt;/p&gt;</description>
    </item>
    <item>
      <title>楠哥甲午年末的跳槽总结【楠哥原创】</title>
      <link>https://liubonan.com/posts/nan-ge-jia-wu-nian-mo-de-tiao-cao-zong-jie/</link>
      <pubDate>Mon, 23 Mar 2015 07:14:34 +0000</pubDate>
      <guid>https://liubonan.com/posts/nan-ge-jia-wu-nian-mo-de-tiao-cao-zong-jie/</guid>
      <description>&lt;p&gt;&lt;em&gt;楠哥的帖子只在一亩三分地和我个人的某个人迹罕至的博客发表，转载、引用请注明作者、出处。谢谢。原帖发于&lt;a href=&#34;http://www.1point3acres.com/bbs/thread-125808-1-1.html&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://www.1point3acres.com/bbs/thread-125808-1-1.html&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;好久没有在地里发干货了，趁着跳槽之间的gap，来总结一下跳槽这段经历。&lt;/p&gt;&#xA;&lt;p&gt;##背景介绍&lt;/p&gt;&#xA;&lt;p&gt;可能对这个id熟悉的人,应该已经了解我基本信息了。简单说来就是川大本科，哥大Master，都是CS专业。毕业后于2013年初入职微软，据这次跳槽正式离职工作总计两年零十天。2014年11月Google电面，12月Onsite，2015年1月拿到Offer，3月入职（为什么战线拖了这么长，后面会解释）。工作地点在Google Seattle。&lt;/p&gt;&#xA;&lt;p&gt;##跳槽起因&lt;/p&gt;&#xA;&lt;p&gt;因为Master是在纽约读的，所以跳槽最本质的原因是长期以来心中都有着一个声音，“要找机会回纽约去生活”。而跳槽的导火索，则源于微软组里的Re-Org和2014年的大裁员。Re-Org之后，原来的老板H换到别的组了，新来的老板S和原来老板的风格完全不一样，而且很多事情的思路也与原来老板相左。最最重要的是，新老板并不是那种愿意为手下人的职业生涯考虑的类型，所以总感觉在组里的发展受到限制。&lt;/p&gt;&#xA;&lt;p&gt;其实我一直很享受在微软的感觉，原来的老板H对我也很好，入职10个月就给我升到了60级，而且答应1年到1年半之内升到61级。可是Re-Org之后，老板S有一次提到“三年内你会升到下一级的”，而且从平时的工作中也可以看出丝毫没有给我安排有助于我成长和发展的工作。前后两个老板的反差，让我萌生了跳槽的想法。就在这时，微软开始了有史以来最大规模的裁员，虽然没有波及到我，但是不安全感萦绕在每一个人的心头，自然刷题和跳槽就成了一种自我解救的手段。2014年9月，正式开始查资料、刷题、看面经。&lt;/p&gt;&#xA;&lt;p&gt;##跳槽准备&lt;/p&gt;&#xA;&lt;p&gt;跳槽和刚毕业找工作有稍许的不同。好处是，毕竟不是第一次找工作了，知道应该把有限的经历放在什么地方；坏处是每天白天上班，晚上刷题，还有生活上的杂事，很累也很容易放弃。分几部分来说说我的准备过程：&lt;/p&gt;&#xA;&lt;p&gt;###简历准备&lt;/p&gt;&#xA;&lt;p&gt;我的简历基本上完全重写了一遍，原来写在简历上的project全部都用工作之后的project替代了。因为本文不是简历写作的攻略，所以我就不展开说了，重点推荐一本书，the google resume, 也是CtCI的作者写的，我前前后后看了多遍，感觉里面的思路非常不错。作为跳槽的简历，注意不要透露Confidential的信息。有的正在进行中的project，应该注意不要透露更多的细节。也应该避免过多的使用缩写和专有名词，有的时候在一个公司干的久了，难免会把简历写成工作报告。&lt;/p&gt;&#xA;&lt;p&gt;另外，工作一段时间后，对于经济上的投入相对学生时代变得不是很敏感，而对于时间上的投入则变得分秒必争。所以简历写好了之后，在网上找了一个改简历的服务。网申很多类似的服务，价格不等，一般几十元的大多是从HR的角度帮助修改，100-200元这个价位的就可以找到experienced engineer帮忙修改了，我觉得后者要更有用一些。&lt;/p&gt;&#xA;&lt;p&gt;###算法题准备&lt;/p&gt;&#xA;&lt;p&gt;算法题仍然是这个level面试的关键因素，曾经听说过这个级别的职位，一般说来算法题决定hiring decision，设计题决定package如何。算法题的准备最关键的其实是“恒心”两个字。工作之后，每天在公司工作8个小时，晚上再回家刷题确实是一件非常辛苦的事情，但是如果像我这样没有做过什么ACM的同学，算法题还是要花时间去准备的。Leetcode我准备的主要材料，网上还有一些类似的算法课，甚至是专门针对面试的算法课可以去听一听。在准备的过程中，刷题的遍数是一个方面，总结归纳是另一个方面。在前期可以强迫自己每天做N道leetcode，后期就可以每天做1类leetcode题了。至于CtCI和其他的材料，可以作为leetcode的补充，但是如果leetcode还有一多半没有写过，我觉得完全没必要去分散精力。&lt;/p&gt;&#xA;&lt;p&gt;###设计题准备&lt;/p&gt;&#xA;&lt;p&gt;从来没有准备过设计题，所以在网上找了很多资料。网上最多的说法是说去看大公司的Engineering Blog，我相信会有一定作用，但是问题是，我在准备跳槽的过程当中，算法题的准备已经花去了我大部分的精力，毫无头绪的看技术博客，非常的没有效率。所以，我只是简单的看了一些这类题目的作答技巧，其中有一个Harvard的课的最后一节，大概两个小时（连接是 &lt;a href=&#34;https://www.youtube.com/watch?v=-W9F__D3oY4&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://www.youtube.com/watch?v=-W9F__D3oY4&lt;/a&gt;），我觉得对我的帮助特别特别的大。网上也有别人做过重点推荐，我觉得如果没有什么时间，就认真看一看这个会起到非常大的作用。全部准备完之后，在网上约了一个小时的Design mock interview，一个session大概可以mock4个题，有很全面的feedback，很适合面试前突击。&lt;/p&gt;&#xA;&lt;p&gt;###联系Recruiter，投简历&lt;/p&gt;&#xA;&lt;p&gt;因为最开始的想法是回纽约，所以所有的职位全部都是选择的NYC。&lt;/p&gt;&#xA;&lt;p&gt;Google和Facebook刚好在2014年5月份左右有Recruiter加我的LinkedIn，当时来回发过几封邮件，所以当我准备跳槽时候，给他们发过去简历，很快就安排了面试。&lt;/p&gt;&#xA;&lt;p&gt;Amazon比较特别，因为和Microsoft同在Greater Seattle，所以一年当中会不断地有Recruiter给你发邮件，当时刚好接到了一个组的邮件，号称要做High Confidential Project，所以决定面这家。&lt;/p&gt;&#xA;&lt;p&gt;LinkedIn的面试来自于同学的推荐，并不是内推，而是LinkedIn让我的同学去面试，他无意跳槽，就把我介绍给了那个Recruiter。所以如果你打算跳槽，多问问周围的同学说不定会有意想不到的机会。注意，我说的是同学，不是同事。&lt;/p&gt;&#xA;&lt;p&gt;进入十月份，因为一些原因Seattle成为了我的候选地点之一，于是我找同学内推了Apple Seattle，我自己还投了Twitter Seattle，以及NYC的Square和Dropbox。结果连电话面试都没有接到。&lt;/p&gt;&#xA;&lt;p&gt;##面试经历&lt;/p&gt;&#xA;&lt;p&gt;一共面了4家，都拿到了onsite。&lt;/p&gt;&#xA;&lt;p&gt;Google整个面试流程拖得非常长。电面是纽约的一个工程师打电话过来的，两个题目都很简单，之后安排了纽约的Onsite。Onsite一共五轮+一轮吃饭，每轮45分钟，每轮1题，全部是算法题。Google的面试题第一个特点，就是题都是自己编的，没有在别的地方看到过。Google面试的第二个特点就是题目编的都不是严谨，很多时候面试官也没想的很完善，你如果提出来了感觉是非常好的加分。其实我觉得，Google题目整体难度不高，基本是Leetcode上的中等题目的水平。但是因为是新题，所以相比Leetcode上面见过的题，可能会有一些陌生的感觉。&lt;/p&gt;&#xA;&lt;p&gt;Facebook电面只有一轮，题目不算简单，我答的也不好，但是没想到竟然给了onsite。Onsite两轮算法，一轮Design，一轮behavior+Design。设计题没答好，算法题感觉难度基本是Leetcode上面较难的一部分题目，可以明显的看出面试题是从Leetcode上面改编的。design没答好，最后没offer是自然。&lt;/p&gt;&#xA;&lt;p&gt;LinkedIn安排了两轮电面，每一轮都有两个人。电面都是Leetcode原题。在纽约Onsite，一共五轮（onsite当天早晨5点才到纽约，紧接着面试我也是够拼的），其中两轮behavior，一轮Design，两轮算法。除了design和其中一轮behavior以外，都是两个面试官。算法题基本全部都是leetcode原题，design题也非常简单。只是不知道为什么最后没有发offer。&lt;/p&gt;&#xA;&lt;p&gt;Amazon收到邮件后，安排了一次电面，电面直接和Hiring Manager进行，问了一道很简单的算法题和很多behavior的题目。紧接着安排了Onsite，奇怪的是，onsite也没有什么很难的算法题，事实上，应该说onsite也没有什么算法题，一共5轮，一轮behavior，一轮纯算法，两轮OO Design，一轮System Design。&lt;/p&gt;&#xA;&lt;p&gt;所有面经的具体题目，用小号放出。&lt;/p&gt;&#xA;&lt;p&gt;##Offer选择&lt;/p&gt;&#xA;&lt;p&gt;无奈一共只有两个Offer，Amazon和Google，没什么好选择的。其实两家的base都没有我在Microsoft的base高，不过Google的annual bonus和stock高一些，而切Google毕竟是包括我在内的很多码农向往的地方，所以最后选了Google。在地点上，Google当时可选Seattle，NYC和MTV，我自己都不敢相信，两年来心心念念的NYC，我却在最后放弃了。留在Seattle，但愿我不会后悔。&lt;/p&gt;&#xA;&lt;p&gt;##H1b与绿卡&#xA;H1B Transfer应该是每一个第一次跳槽的人都很关心的问题。先来说一下流程，基本流程是你拿到新公司的Offer，确认接受Offer，公司进行背景调查。北京调查后公司开始为你办理H1B Transfer。（H1B Transfer办理前，公司会首先提交一个LCA application，一般这个公司可能不会告诉你详情，但是很多公司的Immigration System里面会有显示。）公司首先提交H1B Transfer Petition，从USCIS收到Case Number，理论上来讲，这个时候你就可以通知现在的雇主你打算换工作了，因为即便现在的雇主当时辞退你，你也可以直接到新公司上班，不需要等到你的H1B Case被批准。如果新公司帮你办理的是Premium Processing，那么你的Case会在15日内被批准，如果是Regular Processing，那么你需要等1个多月到若干月不等，具体要看当时USCIS公布的处理时间。无论需要等多长时间，一旦你拿到了Case Number，都不影响你到新的公司入职工作（有些公司有自己的Policy除外）。还需要特别说明的是，我在网上查到的资料显示，你在H1B Transfer提交申请的整个过程当中，你的现任雇主不会知道H1B Transfer这件事情。具体到我个人，直到我的H1B Case被批准，我的现有雇主都不知道我要换工作这件事情。&lt;/p&gt;&#xA;&lt;p&gt;现在越来越多的公司开始为刚入职的员工办理绿卡了，所以，跳槽的过程当中，绿卡自然也是一个重要的考量因素。绿卡的详细过程可以参见W大多年前写的关于绿卡的系列文章，我在这里就跳槽相关的事情简单解释一下。楼主的老雇主M和新雇主G都从入职第一天开始办理绿卡。（事实上，可能对于1-2年工作经验的同学，为了增加offer的吸引力，即便像Amazon这样的公司，也愿意提供绿卡。）绿卡办理大体上分为三步，PERM，I-140和I-485。对于中国大陆出生的同学来说，要经过一个大致5年的排期过程，排期一般发生在I-140和I-485之间，所以基本上前面两步视公司律师的配合程度，一般情况下在一年-两年之间可以完成。排期的时候，你进入Queue的日期，叫做Priority Date，是按照PERM的提交日期进行计算。跳槽的时候，一旦进入新的公司都要从头再来，这是无法改变的，我们能够做的是，进入新公司从新开始办绿卡时，继续使用以前的Priority Date，这样就可以保证排期的等待时间不会因为跳槽而增加。为了达到这个目标，我们就要等待I-140批准后（不是递交之后）再辞职，这也就是为什么楼主跳槽从拿到offer到最后入职经历了两个多月的时间。I-140现在审理时间为4-6个月，其实也是可以办理Premium Processing的，但是微软的政策是办理Premium Processing需要Manager批准，所以我就老老实实的等了5个月。&lt;/p&gt;</description>
    </item>
    <item>
      <title>《Effective C#》读书笔记（一）</title>
      <link>https://liubonan.com/posts/effective-c----du-shu-bi-ji--yi/</link>
      <pubDate>Tue, 11 Mar 2014 04:02:06 +0000</pubDate>
      <guid>https://liubonan.com/posts/effective-c----du-shu-bi-ji--yi/</guid>
      <description>&lt;p&gt;这篇文章是Effective C#第一章的读书笔记，共计11节。作者给出的还是比较简单的建议，整理如下：&lt;/p&gt;&#xA;&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>《Effective C#》读书笔记（零）</title>
      <link>https://liubonan.com/posts/effective-c----du-shu-bi-ji--ling/</link>
      <pubDate>Tue, 11 Mar 2014 03:04:16 +0000</pubDate>
      <guid>https://liubonan.com/posts/effective-c----du-shu-bi-ji--ling/</guid>
      <description>&lt;p&gt;因为工作的原因，现在越来越难抽出时间写技术文章了。曾经看到过一个统计数据，大概是说每个码农平均每年阅读技术书籍的数量小于一本。为此，一方面为了督促自己看书，一方面为了和大家分享心得，从今天开始，我会不定期更新读书笔记。选择的书籍肯定不会是《Prime C++》这类厚重的参考手册，我会尽量选择一些介绍技巧和经验的“伪进阶”类的书。第一个系列自然会和我的工作相关，《C#高效编程:改进C#代码的50个行之有效的办法》，英文原书是Effective C# - 50 Specific Ways to Improve Your C#, 我在以后的文中就简称为Effective C#好了。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pow(x, n)</title>
      <link>https://liubonan.com/posts/pow-x--n/</link>
      <pubDate>Thu, 20 Dec 2012 00:35:00 +0000</pubDate>
      <guid>https://liubonan.com/posts/pow-x--n/</guid>
      <description>&lt;p&gt;指数计算应该是递归程序设计的入门级题目，但是在一场面试中写一个bug-free的代码还是需要多多注意边界条件。首先是底数的正负会影响结果，其次是指数的正负，也会影响结果。因为函数原型是pow(int x, int n),所以指数一定是整数。题目的一个简单思路是使用一个循环计算n遍x的乘积，但是这样的计算复杂度太高。如果我们想计算pow(x,16),我们需要做15次乘法，这样的开销很大。使用分治法换一个角度考虑，pow(x,16)其实可以分成两个pow(x,8)的乘积，同样的，pow(x,8)可以分成两个pow(x,4)的乘积，这样计算下去，只需要计算4次乘法就可以完成。如果pow(x,15)该怎么算？其实只要计算两个pow(x,7)的乘积再乘以x即可。在实现的时候有一个细节需要注意。当写递归的代码时，不要使用return pow(x,n/2)*pow(x,n/2)这样的语句，因为这样会造成重复计算pow(x,n/2)两次，增加运算的复杂度。使用一个变量保存pow(x,n/2)的结果才是正解。此题同样是Leetcode OJ上的题目，下面是其Java实现。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Solution&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;/**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * Implement pow(x, n).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; */&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;static&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;main&lt;/span&gt;(String&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;args)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// TODO Auto-generated method stub&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println(&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Solution().pow(2.0,10));&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;double&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;pow&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;double&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;x,&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;n)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// Start typing your Java solution below&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// DO NOT write main() function&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;boolean&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;neg&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;((x&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;n&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;||&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(x&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;1)){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;1;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(x&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(x&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;neg&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(neg){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;pow(x&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;*&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1),n);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;pow(x&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;*&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1),n);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(n&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;1;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(n&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;1){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;x;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(n&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;n&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;%&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;2&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;double&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;pow(x,&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;n&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;/&lt;/span&gt;2);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;double&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;pow(x,&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(n&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;/&lt;/span&gt;2);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;*&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;x;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;double&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;pow(x,&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;n&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;*&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1));&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;1.0&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Valid Parentheses</title>
      <link>https://liubonan.com/posts/valid-parentheses/</link>
      <pubDate>Wed, 19 Dec 2012 03:01:31 +0000</pubDate>
      <guid>https://liubonan.com/posts/valid-parentheses/</guid>
      <description>&lt;p&gt;括号题目是一类经典的算法题目，有很多变形。这类题目乍一看上去没有什么思路，但是实质上就是最近成对括号的匹配问题。常用的方法有记录括号数目和使用栈两种方式。&lt;/p&gt;&#xA;&lt;p&gt;合法括号的判断问题是指在一串由()[]和{}组成的字符串中，判断括号是否合法。比如{()[]}是一个合法序列，但是(])就是非法的。该题目的解决可以使用栈来完成。当发现一个左括号([{时，将其压入栈中；当扫描到一个右括号时，判断栈顶元素（java中使用peek()函数）是否是与当前元素匹配的括号字符。如果不匹配，则整个字符串不合法；如果匹配，则弹出栈顶元素（java中使用pop()）函数。该题目是Leetcode OJ上的题目，其java实现如下&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Solution&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;/**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * Given a string containing just the characters &amp;#39;(&amp;#39;, &amp;#39;)&amp;#39;, &amp;#39;{&amp;#39;, &amp;#39;}&amp;#39;, &amp;#39;[&amp;#39; and&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * &amp;#39;]&amp;#39;, determine if the input string is valid.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * The brackets must close in the correct order, &amp;amp;quot;()&amp;amp;quot; and &amp;amp;quot;()[]{}&amp;amp;quot; are all&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * valid but &amp;amp;quot;(]&amp;amp;quot; and &amp;amp;quot;([)]&amp;amp;quot; are not.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; */&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;static&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;main&lt;/span&gt;(String&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;args)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// TODO Auto-generated method stub&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println(&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Solution().isValid(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;{}()&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;));&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;boolean&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;isValid&lt;/span&gt;(String&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;s)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// Start typing your Java solution below&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// DO NOT write main() function&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Stack&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;Integer&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;stack&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Stack&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;Integer&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;gt;();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;s.length();i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;switch&lt;/span&gt;(s.charAt(i)){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;case&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#39;(&amp;#39;&lt;/span&gt;:&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;stack.push(1);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;break&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;case&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#39;[&amp;#39;&lt;/span&gt;:&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;stack.push(2);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;break&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;case&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#39;{&amp;#39;&lt;/span&gt;:&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;stack.push(3);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;break&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;case&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#39;)&amp;#39;&lt;/span&gt;:&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(stack.empty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(stack.peek()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;1){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;stack.pop();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;break&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;case&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#39;]&amp;#39;&lt;/span&gt;:&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(stack.empty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(stack.peek()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;2){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;stack.pop();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;break&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;case&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#39;}&amp;#39;&lt;/span&gt;:&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(stack.empty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(stack.peek()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;3){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;stack.pop();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;break&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;default&lt;/span&gt;:&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!&lt;/span&gt;stack.empty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;    &lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Climbing Stairs</title>
      <link>https://liubonan.com/posts/climbing-stairs/</link>
      <pubDate>Tue, 18 Dec 2012 00:41:55 +0000</pubDate>
      <guid>https://liubonan.com/posts/climbing-stairs/</guid>
      <description>&lt;p&gt;爬楼梯问题是一道典型的递归问题和动态规划问题的入门级题目。题目描述是：给定一个n个台阶楼梯，每次可以上一个或者两个台阶，请问最终可以有多少种方法爬到顶层。使用递归的思路解决是，到达第K个楼梯的方法数目是到达地k-1个楼梯的方法数与到达地k-2的楼梯的方法数的和。所以，如果函数原型是int cal(int n)，那么我们可以得到递归规则是cal(k)=cal(k-1)+cal(k-2）。边界条件是cal(1)=1,cal(2)=2。但是，这样计算会有很多的重复性计算，所以可以使用动态规划来解决。如果使用一位数组ways来存储到达第k个楼梯的方法数，那么ways[k+1] = ways[k]+ways[k-1];从0一直结算到n，可以避免很多的重复计算。该题目是leetcode上OJ的题目，也是CtCI的原题的变形。下面是给题目的Java实现。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Solution&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;/**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * You are climbing a stair case. It takes n steps to reach to the top.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * Each time you can either climb 1 or 2 steps. In how many distinct &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * ways can you climb to the top?&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; */&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;static&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;main&lt;/span&gt;(String&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;args)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// TODO Auto-generated method stub&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println(&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Solution().climbStairs(10));&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;climbStairs&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;n)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// Start typing your Java solution below&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// DO NOT write main() function&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(n&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;ways&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;n&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;1&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;ways&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;0&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;1;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;ways&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;1&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;1;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;2;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;n&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;1;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;ways&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;ways&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]+&lt;/span&gt;ways&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;2&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;ways&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;n&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;       &lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Balanced Binary Tree</title>
      <link>https://liubonan.com/posts/balanced-binary-tree/</link>
      <pubDate>Sun, 16 Dec 2012 00:40:56 +0000</pubDate>
      <guid>https://liubonan.com/posts/balanced-binary-tree/</guid>
      <description>&lt;p&gt;判定平衡二叉树的题目是一道基本的数据结构题目，在Leetcode的OJ上也有相关的测试用例。二叉树的结构请参见《Leetcode中使用的二叉树结构》。&lt;/p&gt;&#xA;&lt;p&gt;可以使用一个递归函数，递归的判断每个节点的左子树和右子树的高度是否相差1，但是这样的算法会产生很多次重复的计算，效率并不高。另外一种方法是设计一个递归函数，返回以每个节点为根的二叉树的高度，当左右子树返回的高度相差超过1时，则返回-1表示该树不平衡。这样的算法时间复杂度为O(n)。该算法的Java实现如下。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;public class Solution {&#xA;&#xA;&#x9;/**&#xA;&#x9; * Given a binary tree, determine if it is height-balanced.&#xA;&#x9; *For this problem, a height-balanced binary tree is defined as a binary &#xA;&#x9; *tree in which the depth of the two subtrees of every node never differ &#xA;&#x9; *by more than 1.&#xA;&#x9; */&#xA;&#x9;public static void main(String[] args) {&#xA;&#x9;&#x9;// TODO Auto-generated method stub&#xA;&#x9;&#x9;TreeNode root = new TreeNode(1);&#xA;&#x9;&#x9;root.left = new TreeNode(2);&#xA;&#x9;&#x9;root.right = new TreeNode(3);&#xA;&#x9;&#x9;root.left.left = new TreeNode(4);&#xA;&#x9;&#x9;root.left.right = new TreeNode(5);&#xA;&#x9;&#x9;root.right.left = new TreeNode(6);&#xA;&#x9;&#x9;root.right.right = new TreeNode(7);&#xA;&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;System.out.print(new Solution().isBalanced(root));&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;public boolean isBalanced(TreeNode root) {&#xA;        // Start typing your Java solution below&#xA;        // DO NOT write main() function&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;if(height(root) == -1)&#xA;&#x9;&#x9;&#x9;return false;&#xA;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;return true;&#xA;    }&#xA;&#x9;&#xA;&#x9;public int height(TreeNode n){&#xA;&#x9;&#x9;int left_b, right_b;&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;if(n == null){&#xA;&#x9;&#x9;&#x9;return 0;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else{&#xA;&#x9;&#x9;&#x9;left_b = height(n.left);&#xA;&#x9;&#x9;&#x9;right_b = height(n.right);&#xA;&#xA;&#x9;&#x9;&#x9;if (left_b == -1 || right_b == -1) {&#xA;&#x9;&#x9;&#x9;&#x9;return -1;&#xA;&#x9;&#x9;&#x9;} else if (Math.abs(left_b - right_b) &amp;amp;lt;= 1) {&#xA;&#x9;&#x9;&#x9;&#x9;return Math.max(left_b, right_b)+1;&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;return -1;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Leetcode中使用的二叉树结构</title>
      <link>https://liubonan.com/posts/leetcodezhong-shi-yong-de-er-cha-shu-jie-gou/</link>
      <pubDate>Sun, 16 Dec 2012 00:32:11 +0000</pubDate>
      <guid>https://liubonan.com/posts/leetcodezhong-shi-yong-de-er-cha-shu-jie-gou/</guid>
      <description>&lt;p&gt;在leetcode中使用的二叉树,大多是&amp;quot;双指针&amp;quot;二叉树,即每个节点有指向其两个孩子的两个指针。同时，每个节点都有一个域存储该节点的int型值。每个节点写成一个类，该类每个域都是默认的public型的，可以从类外直接访问。该类提供一个构造函数，用于创建一个新的节点并将int型的value赋值。每个节点的java实现如下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;TreeNode&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;val;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;TreeNode&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;TreeNode&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;TreeNode(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;x)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;val&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;x;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Best Time to Buy and Sell Stock</title>
      <link>https://liubonan.com/posts/best-time-to-buy-and-sell-stock/</link>
      <pubDate>Sat, 15 Dec 2012 00:57:28 +0000</pubDate>
      <guid>https://liubonan.com/posts/best-time-to-buy-and-sell-stock/</guid>
      <description>&lt;p&gt;股票买卖是面试当中另外一个常见的问题。问题的描述是：给出一个数组，数组中的的数表示每个时刻股票的价格。如果只允许买卖一次，请写出一个算法给出可能的最大收益。基础的算法是对于一个个时刻，搜索其能得到的最大收益，最后在所有的最大收益当中选择一个最大值输出。这样的算法复杂度为O（n^2）。一个比较好的算法是，使用两个变量一个记录当前遇到的最低股价，一个计算当前的最大收益。从左到右搜索数组，如果当前价格与最低股价的差大于最大收益，则将当前最大收益保存下来。扫描结束后，便可得到最大的收益。该题目在leetcode的OJ上面有，下面是该算法的Java实现。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Solution&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;/**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * Say you have an array for which the ith element is the price of a given&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * stock on day i.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * If you were only permitted to complete at most one transaction (ie, buy&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * one and sell one share of the stock), design an algorithm to find the&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * maximum profit.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; */&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;static&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;main&lt;/span&gt;(String&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;args)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// TODO Auto-generated method stub&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;A&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{2,1,4};&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.print(&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Solution().maxProfit(A));&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;maxProfit&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;prices)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// Start typing your Java solution below&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// DO NOT write main() function&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(prices&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;||&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;prices.length&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;maxprofit&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;lowest_before&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Integer.MAX_VALUE;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;prices.length;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(lowest_before&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;prices&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;lowest_before&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;prices&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(prices&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;lowest_before&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;maxprofit){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;maxprofit&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;prices&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;lowest_before;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;maxprofit;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;    &lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Two Sum</title>
      <link>https://liubonan.com/posts/two-sum/</link>
      <pubDate>Fri, 14 Dec 2012 03:50:22 +0000</pubDate>
      <guid>https://liubonan.com/posts/two-sum/</guid>
      <description>&lt;p&gt;Two Sum是各种面试题当中的经典题目。题目是给定一个目标和和一个数组，找出和等于目标和的所有数对。题目的解法有很多，比如使用hash map把数组进行hash存储，之后查找每个元素是否可以找到对应的值是否存在于hashmap当中。这样的解法的时间复杂度是O(n)，空间复杂度也是O(n)。另外一种方法是将一个数组排序，之后使用两个指针，一个向后搜索，一个向前搜索，如果当前和小于目标和，左指针向右移动；反之右指针向左移动。这样的话时间复杂度是O(n)依赖于排序的复杂度，空间复杂度最好可以做到O(1)。往往面试官希望能给出第二种解法。第二种解法的java实现如下。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;sol&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;/**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * Given an array of integers, find two numbers such that they add up to a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * specific target number.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * The function twoSum should return indices of the two numbers such that&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * they add up to the target, where index1 must be less than index2. Please&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * note that your returned answers (both index1 and index2) are not&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * zero-based.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * You may assume that each input would have exactly one solution.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; */&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;static&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;main&lt;/span&gt;(String&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;args)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// TODO Auto-generated method stub&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;A&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{150,24,79,50,88,345,3};&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;B&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;sol().twoSum(A,200);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println(B&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;0&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println(B&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;1&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;twoSum&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;numbers,&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;target)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// Start typing your Java solution below&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// DO NOT write main() function&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(numbers&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;||&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;numbers.length&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;2&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;nums&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;numbers.clone();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Arrays.sort(numbers);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;j&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;numbers.length&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(i&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;j){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(numbers&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]+&lt;/span&gt;numbers&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;j&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;target){&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;break&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(numbers&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]+&lt;/span&gt;numbers&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;j&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;target){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;j&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;--&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;results&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1,&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1};&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;k&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;0;k&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;nums.length;k&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(numbers&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;nums&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;k&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;results&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;0&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;results&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;0&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;k&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;1;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(numbers&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;j&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;nums&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;k&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&amp;amp;&lt;/span&gt;amp;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;results&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;1&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;-&lt;/span&gt;1){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;results&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[&lt;/span&gt;1&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;k&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;1;&lt;span style=&#34;color:#6e7681&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Arrays.sort(results);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;results;&lt;span style=&#34;color:#6e7681&#34;&gt;        &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;    &lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>工作基本敲定，我的找工作总结【楠哥原创】</title>
      <link>https://liubonan.com/posts/gong-zuo-ji-ben-qiao-ding--wo-de-zhao-gong-zuo-zong-jie---nan-ge-yuan-chuang/</link>
      <pubDate>Fri, 14 Dec 2012 03:10:41 +0000</pubDate>
      <guid>https://liubonan.com/posts/gong-zuo-ji-ben-qiao-ding--wo-de-zhao-gong-zuo-zong-jie---nan-ge-yuan-chuang/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>Chrome启动后打开第一个网页很慢的解决方案</title>
      <link>https://liubonan.com/posts/chromeqi-dong-hou-da-kai-di-yi-ge-wang-ye-hen-man-de-jie-jue-fang-an/</link>
      <pubDate>Thu, 29 Nov 2012 23:11:06 +0000</pubDate>
      <guid>https://liubonan.com/posts/chromeqi-dong-hou-da-kai-di-yi-ge-wang-ye-hen-man-de-jie-jue-fang-an/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]   &#xA;DefaultConnectionSettings&amp;amp;amp;quot;=hex:3c,00,00,00,05,00,00,00,01,00,00,00,00,00,00,    &#xA;00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,90,b1,e4,38,dc,92,c6,01,    &#xA;01,00,00,00,c0,a8,71,fa,00,00,00,00,00,00,00,00    &#xA;SavedLegacySettings&amp;amp;amp;quot;=hex:3c,00,00,00,85,00,00,00,01,00,00,00,00,00,00,00,00,    &#xA;00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,90,b1,e4,38,dc,92,c6,01,01,00,    &#xA;00,00,c0,a8,71,fa,00,00,00,00,00,00,00,00&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>简单说说教科书吧【楠哥原创】</title>
      <link>https://liubonan.com/posts/jian-dan-shuo-shuo-jiao-ke-shu-ba---nan-ge-yuan-chuang-----2/</link>
      <pubDate>Tue, 24 Jul 2012 05:09:00 +0000</pubDate>
      <guid>https://liubonan.com/posts/jian-dan-shuo-shuo-jiao-ke-shu-ba---nan-ge-yuan-chuang-----2/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>吃货开贴为12级童鞋介绍美国生活（做饭篇）【楠哥原创】</title>
      <link>https://liubonan.com/posts/chi-huo-kai-tie-wei-12ji-tong-xie-jie-shao-mei-guo-sheng-huo--zuo-fan-pian----nan-ge-yuan-chuang-----2/</link>
      <pubDate>Fri, 13 Jul 2012 02:56:37 +0000</pubDate>
      <guid>https://liubonan.com/posts/chi-huo-kai-tie-wei-12ji-tong-xie-jie-shao-mei-guo-sheng-huo--zuo-fan-pian----nan-ge-yuan-chuang-----2/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>简单说说留学生的移动硬盘和资料下载【楠哥原创】</title>
      <link>https://liubonan.com/posts/jian-dan-shuo-shuo-liu-xue-sheng-de-yi-dong-ying-pan-he-zi-liao-xia-zai---nan-ge-yuan-chuang-----2/</link>
      <pubDate>Fri, 13 Jul 2012 02:53:17 +0000</pubDate>
      <guid>https://liubonan.com/posts/jian-dan-shuo-shuo-liu-xue-sheng-de-yi-dong-ying-pan-he-zi-liao-xia-zai---nan-ge-yuan-chuang-----2/</guid>
      <description>&lt;p&gt;原文发表于http://www.1point3acres.com/bbs/thread-36332-1-1.html&lt;/p&gt;&#xA;&lt;p&gt;首先，仍然是背景介绍。lz人在纽约，哥大，平常使用哥大的校园WIFI和有线网。据我所认识的其它学校的朋友大多与我的情况相仿。本文所述皆基于以上的背景。&lt;/p&gt;&#xA;&lt;p&gt;关于网络：&lt;/p&gt;&#xA;&lt;p&gt;WIFI下载速度可达3M/s左右，速度稳定。但是需要你的无线网卡支持802.11的h模式。没有的话速度一般不超过1M。&lt;/p&gt;&#xA;&lt;p&gt;有线网和WIFI速度一致。但是一些建筑内WIFI信号不是很好，所以还是有必要带一个网线的。&lt;/p&gt;&#xA;&lt;p&gt;关于下载：&lt;/p&gt;&#xA;&lt;p&gt;http模式完全没有问题。&lt;/p&gt;&#xA;&lt;p&gt;P2P的话，迅雷的普通下载是没有速度的，但是离线下载可达1M/s左右。电驴和BT的情况比较复杂，使用学校的网络是绝对不行的，用了不到5分钟，MAC地址就被封了。但是我的同学自己租的房子，用att的网络下载无压力。&lt;/p&gt;&#xA;&lt;p&gt;关于下载的建议：&lt;/p&gt;&#xA;&lt;p&gt;过来之后开迅雷会员，淘宝上有便宜的。基本能下载到所有的东西。&lt;/p&gt;&#xA;&lt;p&gt;关于过来时候带的移动硬盘：&lt;/p&gt;&#xA;&lt;p&gt;娱乐类：&lt;/p&gt;&#xA;&lt;p&gt;喜欢电影电视剧的还是带一些，国内的很多在线视频在米国是不能看的。不过这面学习忙，估计也没什么时间看。&lt;/p&gt;&#xA;&lt;p&gt;音乐带一些，不过音乐这东西还是要不断更新，所以带太多了没有用。顺便提一句，百度在这里没有办法使用，可以用酷狗下载，不过速度偏慢。&lt;/p&gt;&#xA;&lt;p&gt;游戏的话，如果不是游戏迷就不要带了。没时间玩。&lt;/p&gt;&#xA;&lt;p&gt;动漫，我是动漫迷，带了不少，还是挺有用的。不过迅雷离线下载也能随时下载到。&lt;/p&gt;&#xA;&lt;p&gt;其它自己的各类爱好视情况而带。&lt;/p&gt;&#xA;&lt;p&gt;软件：&lt;/p&gt;&#xA;&lt;p&gt;windows还是有必要带的，虽然我估计大部分同学过来之后要换电脑。&lt;/p&gt;&#xA;&lt;p&gt;office也建议带上，不过有些学校可以在学校得到免费版，我们学校没有TT……&lt;/p&gt;&#xA;&lt;p&gt;office有一些软件不在套间里，如visio，如果你平时用，也请带上&lt;/p&gt;&#xA;&lt;p&gt;PS也带上，以及其他你喜欢的常用软件&lt;/p&gt;&#xA;&lt;p&gt;至于其他的软件，就仁者见仁，智者见智了，除了win和office以外，lz基本都找到了开源软件或者免费软件进行替代。而且现在web技术如此发达，很多软件都已经在云端了。&lt;/p&gt;&#xA;&lt;p&gt;CS专业：&lt;/p&gt;&#xA;&lt;p&gt;我再补充一些CS专业的软件。&lt;/p&gt;&#xA;&lt;p&gt;VS可以在dreamspark下载免费的学生版，（本人第一次用正版……），不用带&lt;/p&gt;&#xA;&lt;p&gt;Eclipse是开源的，不用带。（这个用的最多）&lt;/p&gt;&#xA;&lt;p&gt;其它大小IDE，多为开源或者免费的，所以都不用带。&lt;/p&gt;&#xA;&lt;p&gt;matlab，我们学校工学院可以有免费的license，如果你们学校没有，请果断带上&lt;/p&gt;&#xA;&lt;p&gt;数据库的话，大多用的是mysql或者oracle的免费产品，MS的SQL同样在dreamspark免费下载。&lt;/p&gt;&#xA;&lt;p&gt;如果你做front-end的东西，最好带DW fireworks什么的&lt;/p&gt;</description>
    </item>
    <item>
      <title>楠哥拟提供免费的Linux练习环境</title>
      <link>https://liubonan.com/posts/nan-ge-ni-ti-gong-mian-fei-de-linuxlian-xi-huan-jing/</link>
      <pubDate>Sat, 18 Feb 2012 04:59:33 +0000</pubDate>
      <guid>https://liubonan.com/posts/nan-ge-ni-ti-gong-mian-fei-de-linuxlian-xi-huan-jing/</guid>
      <description>&lt;p&gt;长久以来，广大国内CS专业的学生都没有一个Unix/Linux编程练习环境，以至于很多学生竟然完全没有机会学习Makefile等技术。现在，楠哥打算抛砖引玉，逐步建立一个免费的Linux平台练习环境。提供这样的免费练习环境的愿望事实上由来已久，特别是最近看到很多前辈为此做出了许多贡献（如&lt;!-- raw HTML omitted --&gt;Unix-Center&lt;!-- raw HTML omitted --&gt;），就更加鼓励我把这样的想法变成现实，同时也希望借此鼓励后来人能够为此作出更多的努力。&lt;/p&gt;&#xA;&lt;p&gt;首先，我为大家提供的是一个由个人电脑改装的“山寨”服务器。服务器现在运行的是Ubuntu服务器版，测试阶段只提供ssh服务，随后将逐渐提供sftp、xwindows等服务。大家可以在此平台上练习Linux的基本命令，也可以进行常规的编程。现在Bserver提供gcc、g++、flex（Lex）、bison（Yacc）等常用的程序。将来会提供更多、更丰富的服务。&lt;/p&gt;&#xA;&lt;p&gt;第一阶段的测试提供两个测试账号：&lt;!-- raw HTML omitted --&gt;（第一测试期已结束）&lt;!-- raw HTML omitted --&gt;&#xA;nange1 password: Nange!&#xA;nange2 password: Nange!&lt;/p&gt;&#xA;&lt;p&gt;ssh地址为：bserver.liubonan.com&#xA;端口号为: 2222&lt;/p&gt;&#xA;&lt;p&gt;ssh连接可以使用putty进行。&lt;/p&gt;&#xA;&lt;p&gt;关于此服务器的任何问题、建议，请使用电子邮件联系liubonan[AT]liubonan.com, 楠哥将及时回复。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java中树的遍历——菜鸟学数据结构（五）</title>
      <link>https://liubonan.com/posts/javazhong-shu-de-bian-li-----cai-niao-xue-shu-ju-jie-gou--wu/</link>
      <pubDate>Sat, 18 Feb 2012 01:54:51 +0000</pubDate>
      <guid>https://liubonan.com/posts/javazhong-shu-de-bian-li-----cai-niao-xue-shu-ju-jie-gou--wu/</guid>
      <description>&lt;p&gt;上次分享了二叉树的数据结构，这次楠哥专门拿出一节来分析二叉树的遍历（Traverse）问题。事实上，二叉树的搜索（Search）问题和遍历问题非常相似，不同的是遍历问题会访问树的每一个节点，而搜索问题一旦找到了所需要的结点就停止操作了。搜索问题楠哥会在后续算法相关的文章当中详解，本次主要分析最常用的两种遍历方法。&lt;!-- raw HTML omitted --&gt;(楠哥计算机学习网www.liubonan.com)&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;深度优先遍历（Depth First）是指对于一颗树，首先访问其左节点，后访问右节点，再访问其根节点；对于节点本身是子树的情况，则按此规则继续深入，直到叶节点位置。这种方法有两种实现的思路。第一种是使用递归（Recursion）的方式，即如果该节点不是叶节点则访问其左子树、右子树，在访问节点本身；另外一种思路是递推（Iteration）的方式，这里需要定义一个栈（Stack），即LIFO队列，如果栈顶结点不是叶节点，就将其左右子树压入栈；循环的从栈顶取结点，再按此规则进行处理。栈的实现Java已经给出，当然也可以使用自定义的类型，具体方式详见《&lt;!-- raw HTML omitted --&gt;Java中栈的实现&lt;!-- raw HTML omitted --&gt;》。&lt;/p&gt;&#xA;&lt;p&gt;广度优先遍历（Breadth First）是指对一棵树，首先访问第一层的结点，在访问第二层的结点，依次类推。这里我们需要用一个FIFO队列（Queue）来实现：将每一个结点的所有子结点加入到队列中，再从队列中选取队首元素出队，依次规则进行循环直到所有结点全部出队。队列的实现Java同样也有现成的类，如果想自定义该数据结构，可以参考《&lt;!-- raw HTML omitted --&gt;Java中队列的实现&lt;!-- raw HTML omitted --&gt;》。&lt;!-- raw HTML omitted --&gt;(楠哥计算机学习网www.liubonan.com)&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;下面的代码实现了两种深度优先遍历方式和一种广度优先遍历方式，因为树的具体代码已经在上次文章中给出，本文只列出遍历函数的代码。全部代码详见《&lt;!-- raw HTML omitted --&gt;Java中的二叉树&lt;!-- raw HTML omitted --&gt;》。&lt;!-- raw HTML omitted --&gt;(楠哥计算机学习网www.liubonan.com)&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;dfs_re&lt;/span&gt;(Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;current)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;((current.getLeft()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;amp;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;amp;(current.getRight()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;))&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(current.getData()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(current.getLeft()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;dfs_re(current.getLeft());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(current.getRight()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;dfs_re(current.getRight());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(current.getData()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;bfs&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Queue&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;q&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;LinkedList();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;q.add(root);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!&lt;/span&gt;q.isEmpty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;q.remove();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(temp.getLeft()&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;q.add(temp.getLeft());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(temp.getRight()&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;q.add(temp.getRight());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(temp.getData()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;dfs_it&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Stack&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;s&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Stack();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;s.push(root);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!&lt;/span&gt;s.isEmpty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;s.pop();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(((temp.getLeft()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;amp;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;amp;(temp.getRight()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;))&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;||&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(temp.isVisited()))&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(temp.getData()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(temp.getRight()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getLeft();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;temp.setVisited(&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(temp);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(left);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(temp.getLeft()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getRight();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;temp.setVisited(&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(temp);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(right);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getLeft();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getRight();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;temp.setVisited(&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(temp);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(right);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(left);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Java中的二叉树——菜鸟学数据结构（四）</title>
      <link>https://liubonan.com/posts/javazhong-de-er-cha-shu-----cai-niao-xue-shu-ju-jie-gou--si/</link>
      <pubDate>Wed, 15 Feb 2012 23:52:12 +0000</pubDate>
      <guid>https://liubonan.com/posts/javazhong-de-er-cha-shu-----cai-niao-xue-shu-ju-jie-gou--si/</guid>
      <description>&lt;p&gt;今天楠哥和大家一起来讨论一下Java当中二叉树的实现。 树是一种高级数据结构，但是却十分常用，稍微复杂的问题就会涉及到树的应用。本文先就树（Tree）的最简单形式——二叉树进行一些简单的分析。顾名思义，二叉树（Binary Tree）即为每个节点至多只有两个子结点（Child Node）的树，因为子结点的个数具有一个固定的范围，所以就可以用顺序存储的办法进行存储。第i个结点的左右子结点分别储存于2i和2i+1的位置。顺序存储的实现可参见本系列文章之《&lt;!-- raw HTML omitted --&gt;Java链表——菜鸟学数据结构（一）&lt;!-- raw HTML omitted --&gt;》（&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;http://www.liubonan.com/articles/349.html&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://www.liubonan.com/articles/349.html&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;）。&lt;!-- raw HTML omitted --&gt;（楠哥计算机学习网www.liubonan.com）&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;但是由于并不是每个二叉树结点都一定有子结点，这样就会浪费很大的存储空间。为此，我们可以使用非顺序存储的方式，本文也就这种方式进行详细的介绍。使用非顺序存储所使用的结点可以使用三种设计方式，分别是单指向、双指向和三指向式。单指向式的结点中有一个指向其父节点的属性，但是这样的方式会造成从根到叶节点无法顺利的进行遍历。另外一种方法是双指向式，每个节点指向其左右子结点（没有则为NULL），本文基于这种设计实现。另外一种三指向式包含了前两种的特点，但是只有特定问题才使用这种设计，所以在此不作阐述。&lt;!-- raw HTML omitted --&gt;（楠哥计算机学习网www.liubonan.com）&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;下面的代码当中实现了一个二叉排序树，每个节点的左节点或左子树的值都小于其本身，而其右节点或右子树的值都大于其本身，该算法将在后面详解，此例的重点在于描述二叉树的数据结构。下文中，将详细介绍该树的各种遍历方法。&lt;!-- raw HTML omitted --&gt;（楠哥计算机学习网www.liubonan.com）&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;//楠哥计算机学习网www.liubonan.com&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Node&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;depth;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;boolean&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;visited;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left,&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;Node&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.setData(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.setLeft(&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.setRight(&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.setVisited(&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getLeft&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setLeft&lt;/span&gt;(Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.left&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getRight&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setRight&lt;/span&gt;(Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.right&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getData&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setData&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.data&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getDepth&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;depth;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setDepth&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;depth)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.depth&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;depth;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;boolean&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;isVisited&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;visited;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setVisited&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;boolean&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;visited)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.visited&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;visited;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;java.util.LinkedList&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;java.util.Queue&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;import&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;java.util.Stack&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;//楠哥计算机学习网www.liubonan.com&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;BinaryTree&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;root;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;BinaryTree&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;setRoot(temp);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getRoot&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;root;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setRoot&lt;/span&gt;(Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;root)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.root&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;root;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;//楠哥计算机学习网www.liubonan.com&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;add_it&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;current&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;root;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;prev&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;boolean&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;childflag&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(current&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;prev&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;current;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(data&lt;span style=&#34;color:#6e7681&#34;&gt;  &lt;/span&gt;q&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;LinkedList();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;q.add(root);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!&lt;/span&gt;q.isEmpty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;q.remove();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(temp.getLeft()&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;q.add(temp.getLeft());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(temp.getRight()&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;q.add(temp.getRight());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(temp.getData()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;//楠哥计算机学习网www.liubonan.com&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;dfs_it&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Stack&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;s&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Stack();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;s.push(root);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!&lt;/span&gt;s.isEmpty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;s.pop();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(((temp.getLeft()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;amp;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;amp;amp;(temp.getRight()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;))&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;||&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(temp.isVisited()))&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(temp.getData()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(temp.getRight()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getLeft();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;temp.setVisited(&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(temp);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(left);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(temp.getLeft()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getRight();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;temp.setVisited(&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(temp);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(right);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;left&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getLeft();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;right&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getRight();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;temp.setVisited(&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(temp);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(right);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(left);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;//楠哥计算机学习网www.liubonan.com&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Tester&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;/**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; * @param args&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;&#x9; */&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;static&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;main&lt;/span&gt;(String&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;args)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;// TODO Auto-generated method stub&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;BinaryTree&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;t&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;BinaryTree(5);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_re(6,t.getRoot());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_re(7,t.getRoot());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_re(2,t.getRoot());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_re(3,t.getRoot());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_re(1,t.getRoot());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_it(8);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_it(10);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_it(4);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.add_it(9);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.dfs_re(t.getRoot());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.dfs_it();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;t.bfs();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Java中队列的实现——菜鸟学数据结构（三）</title>
      <link>https://liubonan.com/posts/javazhong-dui-lie-de-shi-xian-----cai-niao-xue-shu-ju-jie-gou--san/</link>
      <pubDate>Tue, 14 Feb 2012 00:40:37 +0000</pubDate>
      <guid>https://liubonan.com/posts/javazhong-dui-lie-de-shi-xian-----cai-niao-xue-shu-ju-jie-gou--san/</guid>
      <description>&lt;p&gt;&lt;!-- raw HTML omitted --&gt;上次文章&lt;!-- raw HTML omitted --&gt;说到Java中栈的实现，这次楠哥和大家一起学习Java中队列的实现。事实上，队列（Queue）这种数据结构其实和linklist十分的相似，只是在linklist当中可以直接的获取每一个结点的值，而queue只能从一端获取。严格意义上说，队列有很多种，如FIFO队列（先进先出）、LIFO队列（后进先出）和Priority队列（优先级队列）。通常所说的队列即为FIFO队列，而栈其实就是LIFO队列。对于Priority队列，因为涉及到排序算法，将在本系列文章的后面进行分析。&lt;!-- raw HTML omitted --&gt;(楠哥计算机学习网www.liubonan.com)&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;Java有已经写好的Queue类，通常编程当中可以直接使用，本文为了深入分析数据结构的细节，所以自己定义这样一个类。在Java中实现队列，和linklist方法基本一致。Queue类中需要定义两个成员属性header和tail，用于记录队首元素和队尾元素。事实上，可以不记录tail，但是这样的话，会耗费很多的时间用于寻找队尾，对于push操作十分的不合算。Pop，Push和Peek操作与栈的实现基本相似，因为&lt;!-- raw HTML omitted --&gt;前文&lt;!-- raw HTML omitted --&gt;中使用char作为数据类型，本次使用int型给出样例代码。&lt;!-- raw HTML omitted --&gt;(楠哥计算机学习网www.liubonan.com)&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;//楠哥计算机学习网www.liubonan.com&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Node&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;next;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;Node&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.setData(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.setNext(&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getData&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setData&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.data&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getNext&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;next;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setNext&lt;/span&gt;(Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;next)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.next&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;next;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;//楠哥计算机学习网www.liubonan.com&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Queue&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;head,tail;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;Queue&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;(){}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;init&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;head&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;tail&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;head;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;push&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;tail.setNext(temp);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;tail&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;tail.getNext();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;pop&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;head;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;head&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;head.getNext();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getData();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;//楠哥计算机学习网www.liubonan.com&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;char&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;peek&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;head.getData();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;boolean&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;empty&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(head&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;package ds;&#xA;//楠哥计算机学习网www.liubonan.com&#xA;public class Tester {&#xA;&#xA;&#x9;public static void main(String[] args)&#xA;&#x9;{&#xA;&#x9;&#x9;Queue q= new Queue();&#xA;&#x9;&#x9;String test = &amp;amp;quot;abcdefghijklmn&amp;amp;quot;;&#xA;&#xA;&#x9;&#x9;q.init(test.charAt(0));&#x9;&#xA;&#xA;&#x9;&#x9;for(int i = 1; i &amp;amp;amp;lt; test.length(); i++)&#xA;&#x9;&#x9;&#x9;q.push(test.charAt(i));&#xA;&#xA;&#x9;&#x9;while(!q.empty())&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;System.out.print(q.peek()+&amp;amp;quot; &amp;amp;quot;);&#xA;&#x9;&#x9;&#x9;System.out.print(q.pop() + &amp;amp;quot; &amp;amp;quot;);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>用Lisp解决简单的模式匹配(Pattern Match)问题</title>
      <link>https://liubonan.com/posts/yong-lispjie-jue-jian-dan-de-mo-shi-pi-pei--pattern-match-wen-ti/</link>
      <pubDate>Sat, 11 Feb 2012 23:31:57 +0000</pubDate>
      <guid>https://liubonan.com/posts/yong-lispjie-jue-jian-dan-de-mo-shi-pi-pei--pattern-match-wen-ti/</guid>
      <description>&lt;p&gt;Lisp是人工智能中比较常用的语言之一，本文以一个经典的模式匹配(Pattern Match)问题为例，简要分析一下Lisp的语言结构。(楠哥计算机学习网www.liubonan.info)&lt;/p&gt;&#xA;&lt;p&gt;Lisp的语言结构非常简单，有些牛人甚至称“学会七种操作即掌握了lisp的精髓”。Lisp有一篇开山之作《The roots of lisp》，现在已经译为了中文，参看此文，即可大体上掌握Lisp中最精华的内容。(楠哥计算机学习网www.liubonan.info)&lt;/p&gt;&#xA;&lt;p&gt;一个AI中的经典问题——模式匹配(Pattern Match)是这样的，对于一个模式，可以找到与之相符合的内容，并将变量的部分形成匹配的序列进行返回。使用Lisp来描述就是用一些特定的符号如“=x”来匹配一些常量的值，如33（数字）、dog（字符串、符号）等。(楠哥计算机学习网www.liubonan.info)&lt;/p&gt;&#xA;&lt;p&gt;使用Lisp解决这类问题的基本思路是将读入的内容看做一个list，依次取出list当中的各个元素，按照事先设定好的逻辑判断其是否为变量（即“=x&amp;quot;的形式），如果是，则寻找实力当中对应部分是否与之匹配，如匹配则将其加入到“匹配表”当中。当然，判断之前需要先判断一个变量是否已经匹配了其它的元素。(楠哥计算机学习网www.liubonan.info)&lt;/p&gt;&#xA;&lt;p&gt;在下面的代码中，matcher方法不仅可以匹配=x的变量，还可以完成&amp;gt;x， &amp;lt;x，!x等形式，另外可以完成匹配条件的逻辑“并”操作（操作符为&amp;amp;）。可以通过调用（match （object =x =y）（object &amp;lsquo;3 &amp;lsquo;high））进行匹配，程序将返回（（x 3）（y high））的匹配表。该程序还可以将变量与list匹配，如=x可以匹配&amp;rsquo;（a b）。(楠哥计算机学习网www.liubonan.info)&lt;/p&gt;&#xA;&lt;p&gt;程序的核心代码如下。代码的完全版可以在楠哥的个人简历站中course目录下载。(楠哥计算机学习网www.liubonan.info)&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Lisp&#34; data-lang=&#34;Lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;;This is main function.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun &lt;span style=&#34;color:#79c0ff&#34;&gt;matcher&lt;/span&gt;(&lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (and (&lt;span style=&#34;color:#ff7b72&#34;&gt;atom&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) (&lt;span style=&#34;color:#ff7b72&#34;&gt;atom&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (cond ((and (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;not&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;eq&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-eq&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;)) (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-eq-match&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;)) (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-eq-match&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           ((&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-not&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-not-match&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           ((&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-large&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-large-match&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           ((&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-small&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-small-match&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           ((&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;eq&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;) &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;T&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;           (&lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;T&lt;/span&gt; &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (or (&lt;span style=&#34;color:#ff7b72&#34;&gt;atom&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) (&lt;span style=&#34;color:#ff7b72&#34;&gt;atom&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (and (&lt;span style=&#34;color:#ff7b72&#34;&gt;atom&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;) (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;eq&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;car&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) &lt;span style=&#34;color:#a5d6ff&#34;&gt;&amp;#39;&amp;amp;amp&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;;))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#79c0ff&#34;&gt;match-and&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;cdr&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#ff7b72&#34;&gt;atom&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-eq&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#79c0ff&#34;&gt;list-match-eq&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-not&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       (&lt;span style=&#34;color:#79c0ff&#34;&gt;list-match-not&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   (cond ((&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;not&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;matcher&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;car&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;car&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;))) &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9; ((&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;not&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;matcher&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;cdr&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pattern&lt;/span&gt;) (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;cdr&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;fact&lt;/span&gt;))) &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9; (&lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;T&lt;/span&gt; &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;T&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;&amp;amp;lt&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;;/pre&amp;amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;&amp;amp;lt&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;;pre lang=&amp;amp;quot;lisp&amp;amp;quot; line=&amp;amp;quot;1&amp;amp;quot;&amp;amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;bindings&lt;/span&gt; &lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;#39;&lt;/span&gt;()) &lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;;This is a global variable. It is to save bindings&amp;#39; list.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-cut&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;varatom&lt;/span&gt;) &lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;; Get the first char of the atom.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; (&lt;span style=&#34;color:#ff7b72&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;temp&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;read-from-string&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;subseq&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;prin1-to-string&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;varatom&lt;/span&gt;) &lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;temp&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun &lt;span style=&#34;color:#79c0ff&#34;&gt;test-binds&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;value&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pair&lt;/span&gt;) &lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;; Compare the value and the first part of one item in the bindings list.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;eq&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-cut&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;car&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pair&lt;/span&gt;)) &lt;span style=&#34;color:#79c0ff&#34;&gt;value&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;car&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;cdr&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;pair&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;) &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun &lt;span style=&#34;color:#79c0ff&#34;&gt;search-bindings&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;value&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;queue&lt;/span&gt;) &lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;; Search bindings list with &amp;amp;quot;value&amp;amp;quot; as the index.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;null&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;queue&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;eq&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;test-binds&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;value&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;car&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;queue&lt;/span&gt;)) &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   (&lt;span style=&#34;color:#79c0ff&#34;&gt;search-bindings&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;value&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;cdr&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;queue&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   (&lt;span style=&#34;color:#79c0ff&#34;&gt;test-binds&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;value&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;car&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;queue&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;;This is &amp;amp;quot;=&amp;amp;quot; code.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-eq&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;varatom&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;equal&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;subseq&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;prin1-to-string&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;varatom&lt;/span&gt;) &lt;span style=&#34;color:#a5d6ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#a5d6ff&#34;&gt;1&lt;/span&gt;) &lt;span style=&#34;color:#79c0ff&#34;&gt;&amp;amp;quot&lt;/span&gt;&lt;span style=&#34;color:#8b949e;font-style:italic&#34;&gt;;=&amp;amp;quot;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;T&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defun &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-eq-match&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-fact&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;not&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;search-bindings&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-cut&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-pattern&lt;/span&gt;) &lt;span style=&#34;color:#79c0ff&#34;&gt;bindings&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#ff7b72&#34;&gt;setq&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;bindings&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;append&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;bindings&lt;/span&gt; (&lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;list&lt;/span&gt; (&lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;list&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-pattern&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-fact&lt;/span&gt;))))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;equal&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-fact&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;search-bindings&lt;/span&gt; (&lt;span style=&#34;color:#79c0ff&#34;&gt;atom-first-cut&lt;/span&gt; &lt;span style=&#34;color:#79c0ff&#34;&gt;atom-pattern&lt;/span&gt;) &lt;span style=&#34;color:#79c0ff&#34;&gt;bindings&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;T&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#79c0ff;font-weight:bold&#34;&gt;NIL&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Java中栈的实现——菜鸟学数据结构（二）</title>
      <link>https://liubonan.com/posts/javazhong-zhan-de-shi-xian-----cai-niao-xue-shu-ju-jie-gou--er/</link>
      <pubDate>Fri, 10 Feb 2012 04:09:56 +0000</pubDate>
      <guid>https://liubonan.com/posts/javazhong-zhan-de-shi-xian-----cai-niao-xue-shu-ju-jie-gou--er/</guid>
      <description>&lt;p&gt;栈（stack）和队列（queue）是一种最基本、最常用的数据结构。今天我们用Java来实现栈的最基本的功能。栈（stack）的基本操作包括压栈（push）、出栈（pop）和查看栈顶元素（peek）。还经常用到的操作包括获取栈的大小（元素个数）、判断是否为空等此文当中略去，可以通过检测peek（）获取的元素是否为空进行实现。&lt;!-- raw HTML omitted --&gt;（楠哥计算机学习网www.liubonan.com ）&lt;/p&gt;&#xA;&lt;p&gt;栈的特点是后进先出，因此我们只用一个元素top记录栈顶元素的引用即可。push（）操作通过将栈顶的标示移往新填入的元素实现，peek（）通过返回top的数据实现，pop（）通过将栈顶标示向反方向移动并返回原来的top元素实现。请注意，因为栈当中的标示操作存在向反方向移动，所以Node的定义当中，使用了previous来记录前一个结点的引用，这与linklist稍有不同。本文采用int型作为数据，源码如下。&lt;!-- raw HTML omitted --&gt;（楠哥计算机学习网www.liubonan.com ）&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Node&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;previous;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;Node&lt;/span&gt;(){}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getData&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setData&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.data&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getPrevious&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;previous;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setPrevious&lt;/span&gt;(Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;previous)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.previous&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;previous;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Stack&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;top;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;Stack&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;top&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;top.setData(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;top.setPrevious(&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;push&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;temp.setData(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;temp.setPrevious(top);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;top&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;boolean&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;empty&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(top&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;true&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;false&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;pop&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;top.getData();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;top&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;top.getPrevious();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;peek&lt;/span&gt;(){&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;top.getData();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Tester&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;static&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;main&lt;/span&gt;(String&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;args)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Stack&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;s&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Stack(0);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;1;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;10;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;s.push(i);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!&lt;/span&gt;s.empty())&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(s.pop()&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Java链表——菜鸟学数据结构（一）</title>
      <link>https://liubonan.com/posts/javalian-biao-----cai-niao-xue-shu-ju-jie-gou--yi/</link>
      <pubDate>Wed, 08 Feb 2012 06:42:40 +0000</pubDate>
      <guid>https://liubonan.com/posts/javalian-biao-----cai-niao-xue-shu-ju-jie-gou--yi/</guid>
      <description>&lt;p&gt;数据结构一方面是专业程序员必须熟练掌握的基础知识，另一方面也是非专业人员比较头痛的内容。从本篇文章开始，楠哥将开始连载数据结构的入门知识。本篇为大家介绍Java实现链表。&lt;/p&gt;&#xA;&lt;p&gt;因为在Java当中，所有的元素都是对象，而且Java抛弃了指针和地址，而使用了引用的方法，所以使用Java构成链表相对简单。链表的好处在于，你可以事先不知道一个数组的大小，而是动态的加载数据，分配空间，从而确保程序的健壮性和效率。Java已经实现了标准的List、ArrayList等，为了更好的阐述链表的结构，下面我们动手写一下自己的链表类。&lt;/p&gt;&#xA;&lt;p&gt;Java链表的实现首先需要自定义节点类Node，其中包括数据成员和下一个数据成员的引用。在楠哥的代码中，为了方便，就把数据成员定义成了int类型。链表类的成员属性事实上只需要一个头结点header即可，但是为了增加在成员较多情况下的程序的链表的效率，加入tail节点可以更方便的进行操作。如下是链表的样例代码。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Node&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;next&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;0;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;Node&lt;/span&gt;(){}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getData&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setData&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.data&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getNext&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;next;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;setNext&lt;/span&gt;(Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;next)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;this&lt;/span&gt;.next&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;next;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Linklist&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;header&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;tail&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;Linklist&lt;/span&gt;(){}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;add&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;if&lt;/span&gt;(header&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;==&lt;/span&gt;&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;newnode&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;newnode.setData(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;newnode.setNext(&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;header&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;newnode;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;tail&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;newnode;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;newnode&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Node();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;newnode.setData(data);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;newnode.setNext(&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;tail.setNext(newnode);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;tail&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;tail.getNext();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;getdata&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;index)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;header;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;0;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;index;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;temp&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getNext();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp.getData();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;deletehead&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;header&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;header.getNext();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;deletetail&lt;/span&gt;()&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;header;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(temp.getNext()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;tail)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;temp&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;temp.getNext();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;tail&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;temp;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;tail.setNext(&lt;span style=&#34;color:#79c0ff&#34;&gt;null&lt;/span&gt;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;delete&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Node&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;temp&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;header;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;while&lt;/span&gt;(temp.getNext().getData()&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;!=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;data)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;temp&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;temp.getNext();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;temp.setNext(temp.getNext().getNext());&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-Java&#34; data-lang=&#34;Java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;package&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;ds&lt;/span&gt;;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#f0883e;font-weight:bold&#34;&gt;Tester&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;public&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;static&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#d2a8ff;font-weight:bold&#34;&gt;main&lt;/span&gt;(String&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;[]&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;args)&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;Linklist&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;l&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;new&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;Linklist();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;0;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;10;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;l.add(i);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;0;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;10;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(l.getdata(i)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println(l.getdata(5));&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;l.deletehead();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;0;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;9;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(l.getdata(i)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;l.deletetail();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;0;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;8;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(l.getdata(i)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;System.out.println();&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;l.delete(3);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&lt;/span&gt;&lt;span style=&#34;color:#ff7b72&#34;&gt;for&lt;/span&gt;(&lt;span style=&#34;color:#ff7b72&#34;&gt;int&lt;/span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;=&lt;/span&gt;0;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;lt;7;i&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;++&lt;/span&gt;)&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&#x9;&#x9;&lt;/span&gt;System.out.print(l.getdata(i)&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;+&amp;amp;&lt;/span&gt;quot;&lt;span style=&#34;color:#6e7681&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#ff7b72;font-weight:bold&#34;&gt;&amp;amp;&lt;/span&gt;quot;);&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#x9;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6e7681&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#6e7681&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>哥大在校生所了解到的哥大的CS【楠哥原创】</title>
      <link>https://liubonan.com/posts/ge-da-zai-xiao-sheng-suo-liao-jie-dao-de-ge-da-de-cs--nan-ge-yuan-chuang/</link>
      <pubDate>Tue, 17 Jan 2012 23:01:11 +0000</pubDate>
      <guid>https://liubonan.com/posts/ge-da-zai-xiao-sheng-suo-liao-jie-dao-de-ge-da-de-cs--nan-ge-yuan-chuang/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>《图书馆笔记本防盗器》工程测试版发布！</title>
      <link>https://liubonan.com/posts/tu-shu-guan-bi-ji-ben-fang-dao-qi----gong-cheng-ce-shi-ban-fa-bu/</link>
      <pubDate>Mon, 09 Jan 2012 20:33:59 +0000</pubDate>
      <guid>https://liubonan.com/posts/tu-shu-guan-bi-ji-ben-fang-dao-qi----gong-cheng-ce-shi-ban-fa-bu/</guid>
      <description>&lt;p&gt;楠哥软件2012年全新上线！楠哥软件第一弹之图书馆笔记本防盗器工程测试版发布了！&lt;/p&gt;&#xA;&lt;p&gt;很多同学都为图书馆丢电脑烦恼不已。当一个人在图书馆自习时，难免会因为接电话、上厕所或者查资料暂时离开座位，这就为心怀不轨的“一小撮人”留下了机会，你的电脑很有可能就此不翼而飞！！！现在不用怕了，楠哥为大家献上自制小工具——图书馆笔记本防盗器。虽然还仅仅是工程测试版，但是基本功能已经完全实现。其防盗原理在于当有人试图移动你的笔记本时，必然需要断开笔记本的外接电源，此时，软件会获得这一消息，并发出报警声音。&lt;/p&gt;&#xA;&lt;p&gt;该软件使用时需要先设定密码，当离开电脑时点击锁定屏幕按钮，这样除非使用正确的密码解锁或者是强行关闭该程序，电脑都会在电源断开时立刻发出警报。（在未来的版本中，该软件将禁止任务管理器，禁止关机、待机以及使用主板喇叭。）&lt;/p&gt;&#xA;&lt;p&gt;欢迎大家踊跃测试！&lt;/p&gt;</description>
    </item>
    <item>
      <title>声明</title>
      <link>https://liubonan.com/posts/sheng-ming/</link>
      <pubDate>Mon, 24 Oct 2011 18:19:06 +0000</pubDate>
      <guid>https://liubonan.com/posts/sheng-ming/</guid>
      <description>&lt;p&gt;本站已经按照有关方面的要求，对本站内容进行了细致的核查，现已完全删除了相关的违规文章，并将于近期重开。&lt;/p&gt;&#xA;&lt;p&gt;网络上所流传的任何对这些文章的转载、复制、抄袭及再创作，本站一律不负法律责任。&lt;/p&gt;&#xA;&lt;p&gt;本站将一如既往的遵守国家的法律法规，深入贯彻有关方面的各项文件精神，继续为广大计算机爱好者提供交流学习的平台。&lt;/p&gt;&#xA;&lt;p&gt;2011年10月24日 楠哥亲笔&lt;/p&gt;</description>
    </item>
    <item>
      <title>更换笔记本内存：自己动手修电脑（一）</title>
      <link>https://liubonan.com/posts/geng-huan-bi-ji-ben-nei-cun--zi-ji-dong-shou-xiu-dian-nao--yi/</link>
      <pubDate>Sun, 22 May 2011 09:20:01 +0000</pubDate>
      <guid>https://liubonan.com/posts/geng-huan-bi-ji-ben-nei-cun--zi-ji-dong-shou-xiu-dian-nao--yi/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>楠哥计算机学习网隆重推出硬件数码板块，欢迎访问！</title>
      <link>https://liubonan.com/posts/nan-ge-ji-suan-ji-xue-xi-wang-long-zhong-tui-chu-ying-jian-shu-ma-ban-kuai--huan-ying-fang-wen/</link>
      <pubDate>Sun, 22 May 2011 08:27:59 +0000</pubDate>
      <guid>https://liubonan.com/posts/nan-ge-ji-suan-ji-xue-xi-wang-long-zhong-tui-chu-ying-jian-shu-ma-ban-kuai--huan-ying-fang-wen/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>解析Word的编号与列表：你不得不学的Office技巧（三）</title>
      <link>https://liubonan.com/posts/jie-xi-wordde-bian-hao-yu-lie-biao--ni-bu-de-bu-xue-de-officeji-qiao--san/</link>
      <pubDate>Thu, 19 May 2011 10:52:42 +0000</pubDate>
      <guid>https://liubonan.com/posts/jie-xi-wordde-bian-hao-yu-lie-biao--ni-bu-de-bu-xue-de-officeji-qiao--san/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>自动生成Word目录：你不得不学的Office技巧（二）</title>
      <link>https://liubonan.com/posts/zi-dong-sheng-cheng-wordmu-lu--ni-bu-de-bu-xue-de-officeji-qiao--er/</link>
      <pubDate>Thu, 05 May 2011 07:41:36 +0000</pubDate>
      <guid>https://liubonan.com/posts/zi-dong-sheng-cheng-wordmu-lu--ni-bu-de-bu-xue-de-officeji-qiao--er/</guid>
      <description>&lt;p&gt;在无纸化办公盛行的今天，各种文书、论文、稿件大多采用Word进行排版处理，但是在制作各种文书、报表的目录时，很多朋友都采用手动输入的方式，即像输入正文一样将目录中的每一条内容输入到文档当中。这样做有三点弊端：其一，目录页码输入繁琐且无法自动更新，如果正文内容有变，就要改动大量的页码设置；其二，格式不方便控制，如果调整了页面设置，很有可能造成目录中的页码错乱等问题；其三，电子化阅读不便，手工录入的目录往往没有超级链接，无法快速定位到目录所指的页面，这不但为阅读带来不便，而且会显示出文档作者较低的办公软件素质。&lt;/p&gt;&#xA;&lt;p&gt;Word和与之相似的办公软件为我们提供了自动生成目录的方法。使用Word自动生成的目录之前，首先需要使用大纲视图对文档的各章节进行设置。以Microsoft Office Word 2010为例，其大纲视图可以通过菜单栏进入，也可以通过右下角的大纲视图按钮进入，如下图。&lt;/p&gt;&#xA;&lt;p&gt;单击大纲视图按钮，进入大纲视图模式。可以看到，在大纲视图模式当中，所有的文字都是无格式的靠左对其的，而且在每行最左端都会多出了一个灰色或者是黑色的圆点。这个圆点是用来标记此段文字的级别的，也正是我们要设置的内容。Word中将文字的级别定义为了正文、一级标题、二级标题、三级标题……等等若干的级别，默认情况下，你在文章中输入的所有文字都被定义为了正文这一级别，而正文是不会显示在目录当中的。因此，你需要选择一行作为标题的文字，将其设为一级标题，将其子标题设为二级标题，将子标题的子标题设为三级标题，依此类推，如下图。&lt;/p&gt;&#xA;&lt;p&gt;例如，你可以将整个文章中的“第一章”、“第二章”、“第三章”设置为一级标题，将每一章之中的“第一节”、“第二节”、“第三节”设置为二级标题，将每一节中的“一”、“二”、“三”等标号设置为三级标题。设置过程中，只要选择需要设置的那行文字，在菜单栏中的“大纲”选项卡中选择相应的级别即可，如下图。&lt;/p&gt;&#xA;&lt;p&gt;设置好大纲之后，就可以在文档中生成自动目录了。在右下角选择“页面视图”按钮回到正常的视图模式。在你想要插入目录的地方，选择“引用”选项卡当中的“目录”菜单中的“插入目录”选项。在打开的对话框中你可以选择目录的格式、样式和超链接的形式。需要注意的是，如果你希望目录当中只出现“第一章”、“第二章”等标题，那么将显示级别设置为1，如果希望出现章名和小节名，那么将显示级别设置为2，如果希望出现章名、小节名和每个问题的标题，那么可以设置为3。点击确定之后，你的目录就会自动的出现了，如下图。&lt;/p&gt;&#xA;&lt;p&gt;自动生成的目录同样可以向编辑正文一样修改它的文字格式，但是有一点需要注意，如果你生成了目录之后正文发生了变动，那么你需要在目录上选择“更新目录”来对目录的页码和内容进行更新，如下图。&lt;/p&gt;&#xA;&lt;p&gt;关于目录的设置就讲到这里，如果各位朋友配合楠哥在《》一文中所讲的页码设置，一定能让你的文档有一个更加正式、美观的“长相”。希望大家继续关注楠哥计算机学习网&lt;/p&gt;</description>
    </item>
    <item>
      <title>深入解析Word页码设置：你不得不学的Office技巧（一）</title>
      <link>https://liubonan.com/posts/shen-ru-jie-xi-wordye-ma-she-zhi--ni-bu-de-bu-xue-de-officeji-qiao--yi/</link>
      <pubDate>Tue, 26 Apr 2011 11:59:34 +0000</pubDate>
      <guid>https://liubonan.com/posts/shen-ru-jie-xi-wordye-ma-she-zhi--ni-bu-de-bu-xue-de-officeji-qiao--yi/</guid>
      <description>&lt;p&gt;Office办公软件，特别是Microsoft Office软件套装在各行各业都有着深入、广泛的应用，大学生在校期间的各类文档、参加的各种比赛以及找工作时候交的各种材料绝大多数都要提交由Office生成的文档资料，随着企事业单位的无纸化办公的推广，Office软件操作的熟练程度将成为大学生是否能够适应工作的重要指标。为此，从即日起，楠哥将开始讲述《你不得不学的Office技巧》，这个系列为长系列的文章，将不定期在网站放出。本次，楠哥将为你讲解Word中页码设置的相关技巧。千万不要小看Word页码，这小小的数字中包含了十分丰富的内容。&lt;!-- raw HTML omitted --&gt;（&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;楠哥计算机学习网&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;）&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;!-- raw HTML omitted --&gt;    基本设置。&lt;!-- raw HTML omitted --&gt;或许很多人看到这次的题目觉得可笑，心想“页码我还不会设置啊？！”其实，在排版的过程中，你需要学会不同的页码格式、页码顺序，这里面有一些你平常不用，但是用时不会的关键技巧。首先来说一下基本的页码设置，以Microsoft Office 2010为例，单击插入选项卡中的页码按钮就可以方便的进行页码设置，你可以选择将页码插入到页面的顶端、低端或者边栏，也可以设置页码居于页面的左部、中部或者是右部。这就是最基本的页码设置了。&lt;!-- raw HTML omitted --&gt;（&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;楠哥计算机学习网&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;）&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>真题!真题!还是真题!!!NCRE二级C语言复习纲要（后篇）</title>
      <link>https://liubonan.com/posts/zhen-ti--zhen-ti--huan-shi-zhen-ti----ncreer-ji-cyu-yan-fu-xi-gang-yao--hou-pian/</link>
      <pubDate>Tue, 15 Mar 2011 12:59:49 +0000</pubDate>
      <guid>https://liubonan.com/posts/zhen-ti--zhen-ti--huan-shi-zhen-ti----ncreer-ji-cyu-yan-fu-xi-gang-yao--hou-pian/</guid>
      <description>&lt;p&gt;作为二级C语言复习的最后一篇文章，楠哥将在这篇文章中与大家共同分析“指针与结构体”部分的知识。指针一直都是C语言最具特色、最具灵活性也最具魅力的特点之一，也是NCRE二级C语言的重要考点。结构体作为实际程序设计中很有用的一种数据类型，近年来在NCRE的考试中也逐渐受到出题者的青睐。&lt;/p&gt;&#xA;&lt;p&gt;首先我们来共同探讨一下指针部分的内容。翻开2010年9月的真题，你一定会被吓到，竟然有13到题目（11道选择，2道填空）考到了指针部分的内容，累计26分，几乎占到了C语言70分中的40%。当然，这次考试指针部分的题目是历年来最多的，但也足以说明指针在NCRE二级C语言备考当中的重要性。指针的第一个重点，也是最最重要之处就在于对指针、地址、指针指向的地址的值和指针的指针这四个概念的充分理解。什么叫做充分理解？就是你看到int a;int *a;int **a能够立刻想到他们定义了怎样的变量。所有的考试，我说的是所有，无一例外的都会考到这个点，有的甚至会考多至三道题目，所以一定要掌握好这个考点。指针部分的第二个重点在于指针和数组的相互转化。有的时候，考题会以字符数组的形式或者字符串的形式出现，有的时候会使用整形数组。考题往往在定义或者函数传参的过程中变换使用指针或者数组已达到提高考题的目的，但是，只要你多做几道这部分的题目，你会发现他一点都不难，你甚至会对绞尽脑汁出题考你的老师产生一丝怜悯。指针的第三个考点在于malloc函数的使用。这部分不是必考内容，但是考试形式固定，考题也多是十分简单的送分题，所以建议大家能够看一下这个函数的使用方法。2010年3月的考题中，就有一道这样的题，只要你知道这个函数，那2分的填空完全就是白送的。&lt;/p&gt;&#xA;&lt;p&gt;再来看一下结构体的内容。小脸同学一定会问“不用复习共用体么？”不要急，楠哥正要说这个问题。结构体的第一个考点就是和共用体的区别，最爱考的题目就是给你一个共用体或者结构体，之后使用sizeof函数考你他的大小。你只要知道共用体共用一个存储空间，结构体每个元素都有自己的存储空间便可以轻易破解这个类型的题目。结构体和指针的结合型题目是另外一个考点。题目往往会问你一个指针指向结构体，那么他是指向哪一个元素；或者使用链表的产生方式考察你对结构体和指针的应用。如果你还不知道链表是什么，请参看楠哥先前的文章《懂得放弃——NCRE二级公共基础知识26分冲刺之路（上）》。&lt;/p&gt;&#xA;&lt;p&gt;总之，指针和结构体部分的内容在NCRE中有重点少、考题多的特点，你只要掌握好四个定义、指针数组的转化、malloc函数、结构体与共用体区别、指针与结构体结合五个考点，轻松拿下这部分的18-22分左右是完全没有问题的。如此高的分值，所以用4-5天复习这部分的内容是十分必要也十分划算的。&lt;/p&gt;&#xA;&lt;p&gt;至此，NCRE二级C语言部分的考试楠哥就带领大家复习完了。在整个的复习中，如果按照以上的提纲，拿到44-56分的分数应该是十分容易的，加上公共基础知识的20分，通过NCRE二级这个世界上第二无用的考试是十分轻松的。如果你掌握的扎实一些，复习的更加认真一些，在公共基础知识部分拿到26分，那么总分拿到80分应该也是很有可能的。为此，请你从今天起一直到考试前，永远记住楠哥的那句话“真题!真题!还是真题!!!”&lt;/p&gt;</description>
    </item>
    <item>
      <title>真题!真题!还是真题!!!NCRE二级C语言复习纲要（中篇）</title>
      <link>https://liubonan.com/posts/zhen-ti--zhen-ti--huan-shi-zhen-ti----ncreer-ji-cyu-yan-fu-xi-gang-yao--zhong-pian/</link>
      <pubDate>Mon, 14 Mar 2011 12:45:02 +0000</pubDate>
      <guid>https://liubonan.com/posts/zhen-ti--zhen-ti--huan-shi-zhen-ti----ncreer-ji-cyu-yan-fu-xi-gang-yao--zhong-pian/</guid>
      <description>&lt;p&gt;这次楠哥要和大家一起复习“函数和数组”部分的考试内容。函数和数组并不是C语言的独创，但是无论是什么语言，他们绝对是程序设计的灵魂。函数和数组的应用复杂多变，博大精深，看似形式简单，实则内涵丰富，不过，请大家不要忘记，楠哥的目的不是教大家学程序设计，而是和大家一起冲刺世界第二无用的考试。看过好梦楠圆前几篇关于NCRE二级复习文章（如果你没有阅读，楠哥强烈推荐你点击这里先看看他们）的同学一定知道楠哥应对函数和数组的法宝是什么了——真题!真题!还是真题!!!&lt;/p&gt;&#xA;&lt;p&gt;首先来说数组部分。数组的几种定义方式必须要掌握。每年总会有选择题考到“以下选项中错误的数组定义是？”这样的问题，为此你不仅要掌握数组正确的定义方式（特别是指针数组的定义、指针与数组定义的转化，这部分我在下篇文章中还会提到），还要掌握数组错误的定义方式，特别是经常考到的数组的定义方式有哪些。数组部分的第二个重点在于字符串和字符数组。这同样是每次必考的题。2010年9月、2010年3月的两次考试中都有涉及，而且，你会惊讶的发现他们都是给一个字符数组之后对其进行两种无关紧要的操作，我不得再次的感叹，原来每年的考题是如此的一致。二维数组事实上在笔试中考察的概率不大，但是在机考中经常出现，所以楠哥建议大家把他当做第三个重点来掌握。二维数组的题目看似循环复杂，这里楠哥告诉大家一个小技巧。如果考试的时候碰到二维数组的题目，就画一张表格，没发生一次数据变动就把表格相应空格的数据改动一次，因为NCRE考的题目都很浅，点到即止，所以用这样的方法尽管笨一些，但是命中率还是很高的。&lt;/p&gt;&#xA;&lt;p&gt;对于函数部分，主要的难点在于两个难点（这里说难点而不是考点是因为，函数会考一些很白痴的问题，只要你见过函数长什么样子，你就能做出来，所以这里只说两个难点）。第一个是函数参数的传递，另外一个是变量的生命周期与存储方式。第一个难点最爱考察的就是在函数中改变参数的值是否对main函数的变量发生改变，它的窍门在于变量传递是传值还是传地址；第二个难点本质上就是掌握static、extern、register、auto几个关键字的应用。说是难点，其实也是很简单的。&lt;/p&gt;&#xA;&lt;p&gt;函数和数组部分尽管形式多变灵活，但是总结起来只有如上五个考点，即数组定义、字符串与字符数组、二维数组、函数参数传递和变量生存周期。只要掌握好他们，在这部分顺利拿到12-16分应该不成问题。至此，C语言部分70分中我们就已经拿下了26-34分（前面的14-18分搞定方法见《真题!真题!还是真题!!!NCRE二级C语言复习纲要（前篇）》）。在本系列文章的最后一篇中，楠哥将和你分析“指针与结构体”部分的内容。欢迎您继续关注好梦楠圆计算机学习网，下一次，楠哥带你冲过60分。&lt;/p&gt;</description>
    </item>
    <item>
      <title>真题!真题!还是真题!!!NCRE二级C语言复习纲要（前篇）</title>
      <link>https://liubonan.com/posts/zhen-ti--zhen-ti--huan-shi-zhen-ti----ncreer-ji-cyu-yan-fu-xi-gang-yao--qian-pian/</link>
      <pubDate>Sat, 12 Mar 2011 07:08:42 +0000</pubDate>
      <guid>https://liubonan.com/posts/zhen-ti--zhen-ti--huan-shi-zhen-ti----ncreer-ji-cyu-yan-fu-xi-gang-yao--qian-pian/</guid>
      <description>&lt;p&gt;距离NCRE考试还有10多天的时间，小脸同学仍然苦恼于他的二级C语言复习。C语言博大精深，尽管NCRE作为一项标准化考试，已经给出了详细的大纲，但是，其知识点仍然十分庞杂凌乱，让小脸同学找不到复习的要领。今天，楠哥撰写此文，就是希望通过简单的文字，帮助大家梳理一下复习的思路。这里并不会讲解任何的具体知识点，因为这些已经在无数本书中、无数本教辅材料上提到过。我这里仍然按照复习公共基础知识“研究真题，懂得放弃”的原则，分析一下最最高频的考点。所以还是请你记住楠哥在《全国计算机等级考试（NCRE）公共基础知识、二级C冲刺总攻略》里提到的那句话，真题!真题!还是真题!!!&lt;/p&gt;&#xA;&lt;p&gt;正如以前楠哥提到过的那样，二级C语言的考试知识点主要集中在“程序控制结构”、“函数与数组”、“指针与结构体”三个部分。每一个希望拿到“合格”等级证书的同学，只要掌握了这三个部分就已经完全可以了；事实上，即便是希望拿到更好的成绩的同学，如果发挥正常，仅凭这三个部分的知识，也是很有实力冲击“优秀”证书的。楠哥将用三篇文章逐一分析这三部分的高频考点。本文楠哥将首先分析程序控制结构这一专题。&lt;/p&gt;&#xA;&lt;p&gt;翻开历年的二级C语言试题，每年的考试一定会有至少两道分析循环次数的题和至少一道分析分支（选择）结构程序走向的题，因此，本部分的第一个重点就是三种程序控制结构的程序走向问题。其中，if语句的嵌套问题、while语句的循环问题、for语句执行后的变量值问题更是每次必考的内容，所以请大家务必对这部分内容详细掌握。这些题往往以“程序执行后的结果是多少？”或者“程序执行后某个变量的值是多少？”的形式进行提问，比如2010年09月曾有三道选择题和一道填空题考查这个部分内容，2010年03月曾有两个选择题和两个填空题考查这个部分内容。因此，掌握这部分内容十分重要，掌握好仅此一个知识点，即可获得6-8分的分值。第二个重点在于break，continue和goto语句的应用。事实上这三条语句尽管年年考，但是其实你只要记住一句话就可以了，那就是break大跳，continue小跳，goto随便跳。考了30多次的考试，其实没考到这个知识点，都只考这一句话，你一定会惊呼，ncre竟然10多年都没有变！此部分第三个重点在于表达式、变量常量的定义。这其实是C语言的基本知识，但是经常和控制结构结合起来考。每次的考题仍然是固定的，以改错题为主，要么问你“下面的选项中哪项的语句没有错？”要么问你“对于题干的语句错在哪？”，这时候不要往别的地方想，绝大多数情况下就是变常量、表达式的定义错了。2010年9月的选择题有两道，2010年3月同样有2道，2009年9月有1道，2009年3月有两道，你会发现，这7道题真的全部都是表达式和变量常量定义的改错题。掌握好这部分，你就又有2-4分到手了。这部分的最后一个问题在于输入输出问题。输入输出按照大纲上的要求，需要掌握控制台的输入输出（如printf和scanf）和文件输入输出两部分，但是在真正考试的以前者为主，后者为辅，这部分知识不仅会单独考试，还会和后边的函数相结合，所以希望各位能够灵活掌握。&lt;/p&gt;&#xA;&lt;p&gt;综上所述，以上四个知识点（三种控制结构的程序走向问题、break/continue/goto语句问题、变量常量表达式定义问题、输入输出问题）就是程序控制结构的重点，这部分总计大约会考到14-18分左右的内容，占到约C语言部分的四分之一，所以务必请大家重视。而且，他也是整个程序设计的基础，花3天左右的时间复习它还是很必要的。&lt;/p&gt;&#xA;&lt;p&gt;好梦楠圆，圆你好梦。今天先写到这里，请继续关注好梦楠圆，下次楠哥将带你分析“函数与数组”部分的复习。&lt;/p&gt;</description>
    </item>
    <item>
      <title>懂得放弃——NCRE二级公共基础知识26分冲刺之路（下）</title>
      <link>https://liubonan.com/posts/dong-de-fang-qi-----ncreer-ji-gong-gong-ji-chu-zhi-shi-26fen-chong-ci-zhi-lu--xia/</link>
      <pubDate>Wed, 09 Mar 2011 12:29:57 +0000</pubDate>
      <guid>https://liubonan.com/posts/dong-de-fang-qi-----ncreer-ji-gong-gong-ji-chu-zhi-shi-26fen-chong-ci-zhi-lu--xia/</guid>
      <description>&lt;p&gt;书接上回，这次文章中楠哥将就公共基础知识当中需要识记的内容进行一下分析和梳理。公共基础只是当中，需要各位同学识记的内容主要集中在程序设计基础、软件工程基础、数据库设计基础这三部分。小脸同学惊呼“怎么又有数据库设计？不是上一篇文章中已经讲解过了么？”是的，上一部分中楠哥讲解的数据库设计基础中关于理解计算的知识，本文讲讲解关于记忆的知识。&lt;!-- raw HTML omitted --&gt;好梦楠圆计算机学习网（&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;）&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;首先来谈谈软件工程基础部分，这是公共基础知识中的有一各重要的章节（另一个是数据结构与算法，详见《&lt;!-- raw HTML omitted --&gt;懂得放弃——NCRE二级公共基础知识26分冲刺之路（上）&lt;!-- raw HTML omitted --&gt;》）。同样的，软件定义、软件工程定义、软件工程的原则、定义、要素等等概念楠哥建议你放弃，近三年只有2010年03月有一个填空题考察了一半软件的定义，而这个空大多数人不用记都能填的出来。你需要掌握的唯一个概念是软件危机，其实很多朋友即便不复习也能大概说出他是什么，这其实就足够了。软件工程的过程和生命周期同样你需要看一眼，2010年的两次考试和2009年09月的考试都考察这个知识点。结构化分析和设计是软件工程部分的第一个重点。结构化分析和设计中的各种表、图和树都一定要了然于胸，几乎每次考试中都会考他们其中之一，尽管只有2-4分，但是这部分相对容易，用很少的时间就可以掌握。这部分的另外一个重点在于软件测试，测试的目的、测试的方法、黑盒白盒是三个命中率最高的题目，尽管软件测试的考察比例最近几次考试有所下降，但是在以前的考试中，如2009年03月和2008年09月基本都是必考的题目。软件调试部分，楠哥建议你看一下软件调试的方法和目的，其实这几年也只有一次考到，但是这个的记忆量极小，有时间最好还是能够记忆一下。&lt;!-- raw HTML omitted --&gt;好梦楠圆计算机学习网（&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;）&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>懂得放弃——NCRE二级公共基础知识26分冲刺之路（上）</title>
      <link>https://liubonan.com/posts/dong-de-fang-qi-----ncreer-ji-gong-gong-ji-chu-zhi-shi-26fen-chong-ci-zhi-lu--shang/</link>
      <pubDate>Tue, 08 Mar 2011 13:20:47 +0000</pubDate>
      <guid>https://liubonan.com/posts/dong-de-fang-qi-----ncreer-ji-gong-gong-ji-chu-zhi-shi-26fen-chong-ci-zhi-lu--shang/</guid>
      <description>&lt;p&gt;每到全国计算机等级考试（NCRE）前夕，都会有大量的培训机构宣称能够“押题”“猜题”“最后X套题”；而到了每次全国计算机等级考试（NCRE）之后，又会有大量的培训机构宣称“在第XX次考试中再次命中”的口号。事实上，你完全不用理会这些押题卷和猜题卷，楠哥以前曾经说过，NCRE最重要的资料就是真题（详见《全国计算机等级考试（NCRE）公共基础知识、二级C冲刺总攻略》），如果你把真题做三遍以上，那么你发现其实你也能够猜题，因为每年考的知识点竟然是完全一样的；如果你已经练就了透过现象看本质的本领，那么会发现，考了30多次的考试，原来考得就是“同样的一套题”。&lt;/p&gt;&#xA;&lt;p&gt;为了帮助大家复习，楠哥将用两篇文章和各位朋友一起把公共基础知识复习一遍。事实上，楠哥的复习的方法很简单，总结起来就是八个字“研究真题，懂得放弃”。公共基础知识一共15道题目30分，楠哥认为达到26分（即错2道题目）应该是比较容易的。如果你一定要拿30分，那么这篇文章并不会给你带来什么帮助，因为你会发现楠哥会一直和你说“这部分你就不用看了”。这篇文章楠哥主要要先谈谈数据结构、算法以及数据库基础知识的一些内容。这部分内容主要涉及理解的内容较多，是公共基础知识当中的难点。&lt;/p&gt;&#xA;&lt;p&gt;首先来谈谈算法和数据结构。算法的基本概念、算法的特点、要素等等概念性的内容你就完全不用看了，考了这么多年的考试，也从来没有考过。算法复杂度的计算是这部分的第一个重点，比如2010年3月就考到了这样的题目。算法的复杂度问题往往以选择题出现，大家如果不会计算可以把常用的排序算法等算法的时间复杂度记住，考了若干次考试，实际上基本问到的都是这几个算法的时间复杂度。四种数据结构（队列、栈、链表、树）是考试的重点，几乎所有的考试都考到了这四种数据结构或者其中之一。比如2010年9月，15到公共基础知识当中，这4中数据结构的题目竟考了4道题，2010年3月也考了4道题目，而且考的都是栈、链表、树。怎么样，看明白了，原来每年的考题真的是一样的！算法的最后一个重点在于两种查找算法，你只需要理解这两种算法是如何进行的就可以了，完全不用掌握它的代码。有人一定会疑惑的问，排序算法不用看么？楠哥建议你放弃吧，7中排序算法多年来只考过一两次，而且每种算法都比较复杂，性价比真的太低了。如果你不信，你就翻开历年的试题，你会惊讶的发现，2010年09月考的是查找算法、2010年03月考的也是查找算法，2009年09月和2009年03月竟然查找算法和排序算法都没有考。所以，如此复杂的排序算法你还是放弃吧，有时间理解一下查找算法的原理就好。&lt;/p&gt;&#xA;&lt;p&gt;接下来说说数据库系统部分。数据库识记的东西较多，楠哥会在下篇文章中详细谈一下需要识记的知识点的取舍。这里主要说一下数据库这部分需要计算和理解的内容。关系代数的计算部分请你完全放弃吧，这么多年，基本就没有考过，真正的重点在于数据库的三种操作。具体的题型可以参考2010年09月最后一道公共基础知识选择题，这类题型原封不动的在近四次考试中连续出现，而且在历来的考试中几乎每次考试都会有这样一道题，楠哥断言，今年也一定会考的，所以一定要把这类题弄明白。&lt;/p&gt;&#xA;&lt;p&gt;到此为止，公共基础知识需要你理解的内容楠哥就都说完了。总结一下，一共四个点：算法复杂度、四种数据结构、查找算法和数据库的三种操作。是的，尽管大纲上要求掌握很多，但是你只需要理解这些而已。在下篇文章中，楠哥将与你分析应该放弃的需要记忆的内容，你会发现，其实，每年的考试题目真的就那几个点。&lt;/p&gt;&#xA;&lt;p&gt;好梦楠圆，圆你好梦。欢迎继续关注好梦楠圆计算机学习网，楠哥期待下次再与你一起复习NCRE。&lt;/p&gt;</description>
    </item>
    <item>
      <title>feedburner，留住你的rss订阅者</title>
      <link>https://liubonan.com/posts/feedburner-liu-zhu-ni-de-rssding-yue-zhe/</link>
      <pubDate>Mon, 07 Mar 2011 12:32:29 +0000</pubDate>
      <guid>https://liubonan.com/posts/feedburner-liu-zhu-ni-de-rssding-yue-zhe/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>博客撰写，我用Windows Live Writer</title>
      <link>https://liubonan.com/posts/bo-ke-zhuan-xie--wo-yong-windows-live-writer/</link>
      <pubDate>Wed, 02 Mar 2011 14:12:49 +0000</pubDate>
      <guid>https://liubonan.com/posts/bo-ke-zhuan-xie--wo-yong-windows-live-writer/</guid>
      <description>&lt;!-- raw HTML omitted --&gt;</description>
    </item>
    <item>
      <title>全国计算机等级考试（NCRE）公共基础知识、二级C冲刺总攻略</title>
      <link>https://liubonan.com/posts/quan-guo-ji-suan-ji-deng-ji-kao-shi--ncre-gong-gong-ji-chu-zhi-shi---er-ji-cchong-ci-zong-gong-lue/</link>
      <pubDate>Tue, 01 Mar 2011 13:10:45 +0000</pubDate>
      <guid>https://liubonan.com/posts/quan-guo-ji-suan-ji-deng-ji-kao-shi--ncre-gong-gong-ji-chu-zhi-shi---er-ji-cchong-ci-zong-gong-lue/</guid>
      <description>&lt;p&gt;好梦楠圆创办之初就打算把其创办为一个集计算机技术交流和计算机考试培训的网站。但是，经过一段时间的试运行之后出现了两个楠哥无法控制的变化。第一，是关于时间上的变化。一个月之前，楠哥就在好梦楠圆上放出了即将推出NCRE相关资料的消息。但是，时至今日，在距离2011年上半年不足一个月的今天，好梦楠圆才放出了一篇“总攻略”，除了外在的一些因素外，我因为个人的原因耽误了一些时日，特此想大家道歉。由于这样的变化，楠哥很难保证三级网络技术专题相关资料的整理和发布，楠哥会做好关于二级公共基础知识和C语言这两个有广泛参与度的考试项目的资料整理，同时尽一切努力涉及一部分的三级网络技术相关知识。另外一个变化是，好梦楠圆原先打算采用免费视频的方式进行资料的分享，但是，由于好梦楠圆的服务器提供商禁止了在本服务器上放置视频、音频、图像等多媒体元素，我只能将所有的资料以文字的形式进行整理。在好梦楠圆正式运行一段时间后，我将努力改善服务器环境，争取使免费视频教学的模式早日成为现实。&lt;!-- raw HTML omitted --&gt;好梦楠圆计算机学习网&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;我们废话少说，言归正传。从这篇文章开始，好梦楠圆将陆续推出系列文章介绍关于全国计算机等级考试（NCRE）的相关知识。本文主要介绍二级C、公共基础知识的复习总攻略，将就考试的特点提出应对考试的几点策略。&lt;!-- raw HTML omitted --&gt;好梦楠圆计算机学习网&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;NCRE作为全世界第二无用的考试（第一无用的考试是CET-4）一直是大学生心中的一块心病。尽管我们的现状是非计算机学生考它毫无用处，计算机专业的学生考它更无用处，但是，似乎不通过这个考试，拿到他的证书（很多极品的学生甚至一定要拿到优秀证书），总是感觉心里不痛快。鉴于此情况，楠哥关于NCRE考试专题所写的一切文字只是想让大家获得高分，并不能帮住你提高任何的计算机技能。&lt;!-- raw HTML omitted --&gt;你如果想学习更多的计算机操作技巧，请绕过此文及本系列后续文章；如果你想学习编程(C、C++、Java、Access 等)，请绕过此文及本系列后续文章；如果你想获得应试教育的高分，请仔细往下看&lt;!-- raw HTML omitted --&gt;。（好梦楠圆另备各类计算机学习交流文章，想要学习计算机技术技巧，请点击&lt;!-- raw HTML omitted --&gt;这里&lt;!-- raw HTML omitted --&gt;浏览本站其它系列文章）&lt;!-- raw HTML omitted --&gt;好梦楠圆计算机学习网&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Live Mesh，我们从这里走向云</title>
      <link>https://liubonan.com/posts/windows-live-mesh-wo-men-cong-zhe-li-zou-xiang-yun/</link>
      <pubDate>Tue, 01 Mar 2011 09:13:25 +0000</pubDate>
      <guid>https://liubonan.com/posts/windows-live-mesh-wo-men-cong-zhe-li-zou-xiang-yun/</guid>
      <description>&lt;p&gt;随着云技术的发展和普及，“云计算”俨然成为了草根计算机用户心中的一座丰碑。每每谈起云计算，小脸同学一定会说“云计算可是时下最流行、最前沿的计算机技术啊，你竟然连它都不知道……”，但是如果你继续问“云能为我们到来什么？我们这样的草根用户如何能够开始接触传说中的云技术？”，小脸同学就不知所措了。我想大多数人和小脸同学一样，都很难切身感受到云技术为自己带来的便利，为此，楠哥今天就隆重向大家介绍一款微软新推出的软件Windows Live Mesh，以此和大家一起走向神秘的云技术。&lt;/p&gt;&#xA;&lt;p&gt;首先，需要向大家介绍一下云的概念。云技术事实上就是以分布式计算为基础的一种新型技术，他把我们传统上在本地执行的所有计算全部提交到“云端”进行，而我们的计算机本身仅仅扮演一个终端的角色。云的核心就在于“云端”的分布式设计，他保证了云的强大功能。其实说这么多，就是想告诉大家一个道理，我们利用云，就是要利用“云端”这种强大的处理能力（这包括存储能力和运算能力）来为我们带来便利。Windows Live Mesh这款软件事实上就是一个云平台的终端。&lt;!-- raw HTML omitted --&gt;好梦楠圆计算机学习网&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;&#xA;&lt;p&gt;在官方网站上，我们可以免费下载到Windows Live Mesh。他是微软Windows Live软件包中的成员之一。你可以选择下载整个Windows Live软件包，也可以选在在线安装的方式减少等待的时间。下载安装结束后，你就可以使用Windows Live Mesh了。使用Live Mesh，你需要有一个Live ID，其最常见的形式莫过于hotmail账号或者MSN账号，当然你完全可以重新注册一个账号。输入用户名和密码后，你就可以看到软件的主界面了。因为是新推出的软件，所以整个界面简单到甚至有些简陋。但是，可不要小看你这个软件，按照微软的设想，他将来将成为微软云平台的核心。下面，我就来简单介绍一下它的几个主要功能：&lt;!-- raw HTML omitted --&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Offer等的很焦虑？“曲线救国”设置Email免费短信通知</title>
      <link>https://liubonan.com/posts/offerdeng-de-hen-jiao-lu---qu-xian-jiu-guo--she-zhi-emailmian-fei-duan-xin-tong-zhi/</link>
      <pubDate>Mon, 14 Feb 2011 14:34:41 +0000</pubDate>
      <guid>https://liubonan.com/posts/offerdeng-de-hen-jiao-lu---qu-xian-jiu-guo--she-zhi-emailmian-fei-duan-xin-tong-zhi/</guid>
      <description>&lt;p&gt;无论是留学还是找工作，甚至是联系免试攻读研究生，一封录取邮件对于即将升学的大四学生来说显得十分重要，很多朋友部分昼夜的刷着邮箱，期望能够在第一时间看到国外学校或者用人单位的录取信件。事实上，以网易为代表的一批国内电子邮件服务商已经提供了电子邮件短信通知服务，你可以通过绑定手机，在收到电子邮件的第一时间，得到服务商的短信通知。但是，申请留学的学生大多使用Hotmail、Gmail这类的邮箱，而他们在中国大陆地区暂时还没有开通邮件短信通知服务，因此，想要获得这类邮箱第一时间的短信通知，就需要我们动动脑筋，曲线救国了。&lt;/p&gt;&#xA;&lt;p&gt;曲线救国的前提是你要拥有一个QQ邮箱，在腾讯QQ如此普及的今天，我想大家应该都会至少有一个吧，这里就不详述QQ邮箱的申请过程了。曲线救国的总体思路其实很简单，就是让Hotmail/Gmail或者其它任何你惯用的邮件系统（甚至你们学校提供的邮箱或者企业邮箱）将每一封来信转发到QQ邮件系统，再使用QQ邮件的免费短信通知功能提供邮件短信通知功能。&lt;/p&gt;&#xA;&lt;p&gt;首先，你需要将你的QQ免费短信提醒功能开启。进入邮箱首页后，点击位于页面上部的“设置”链接。在稍后打开的页面中选择“帐户”选项卡，在“邮箱账号”中点击“手机号邮箱帐号”旁边的开通按钮。按照提示，一步一步的绑定手机、设置邮箱账号，注意要在最后一步当中勾选“收到发来此地址的邮件，就发短信提醒我”一栏（十分重要!!!）。当你看到设置成功的提示画面，你的QQ邮箱免费短信提醒功能就设置完毕了，你会得到一个类似于“你的手机号码@qq.com”的邮箱账号。&lt;/p&gt;&#xA;&lt;p&gt;接下来就要设置自动转发了。打开你留给国外院校或者用人单位的用于接收Offer的邮箱，以Hotmail/Gmail为例，登陆之后，点击邮箱的“选项”（Gmail称为“设置”）页面。找到选项当中的“电子邮件转发”（Gmail为“转发”）一项单击进入。将刚刚你得到的“你的手机号码@qq.com”这个邮箱账号填到这里，点击确定。OK！以后这个邮箱所受到的所有信件你都可以在第一时间得到短信通知了，而且这一切都是免费的！！需要注意的是，Hotmail邮箱默认不会保存转发后的邮件，你需要选择“在收件箱中保留副本”一项，使得Hotmail邮箱的收件箱中保留有你的邮件。&lt;/p&gt;&#xA;&lt;p&gt;在此，我还要多啰嗦两句。之所以选择QQ邮箱来完成这次的曲线救国，是因为国内其它邮件服务商的短信通知服务大多都是收费的。小脸同学争辩道，楠哥你说的不对，XX邮箱的短信通知服务也是完全免费的！确实，短信通知服务已经比较普遍了，但是对于由其他邮箱Push的邮件，很多服务商并不提供免费的短信通知，比如139的邮箱，就楠哥现在所看到过得资料显示，不是直接发到139的邮件，一般是不会享受免费的短信通知的，当然，IT服务发展神速，说不定此文出现的这一时刻，收费方式就又不一样了。&lt;/p&gt;&#xA;&lt;p&gt;好梦楠圆，圆你好梦，文章的最后，祝各位留学申请者申请顺利，希望你收到的下一条短信就是通知你收取来自Dream School的Offer。&lt;/p&gt;&#xA;&lt;p&gt;本文重点操作索引：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;设置QQ邮箱短信通知。进入邮箱后依次选择设置-帐户-邮箱账号-手机号邮箱账号，选择开通。&lt;/li&gt;&#xA;&lt;li&gt;设置邮件系统转发。以Hotmail/Gmail为例，进入邮箱后依次选择选项(设置)-电子邮件转发(转发)，输入步骤1当中的邮箱账号。至此设置成功。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;精彩预告：&#xA;好梦楠圆将在近期推出全国计算机等级考试（NCRE）“公共基础知识”、“二级C语言”及“三级网络技术”的相关文章，敬请关注。&#xA;———————————————————–&#xA;本文为好梦楠圆（www.liubonan.com ）原创作品，欢迎任何形式的未删改的转载。你不用告诉我你转到了哪里，但是请务必注明本文出自好梦楠圆（ &lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt; ）。&lt;/p&gt;&#xA;&lt;p&gt;好梦楠圆网址： &lt;a href=&#34;http://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://www.liubonan.com&lt;/a&gt;&#xA;好梦楠圆微博： &lt;a href=&#34;http://t.sina.com.cn/smzfeng&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://t.sina.com.cn/smzfeng&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>像往冰箱里装大象一样简单——轻松架设FTP进行文件传输</title>
      <link>https://liubonan.com/posts/xiang-wang-bing-xiang-li-zhuang-da-xiang-yi-yang-jian-dan-----qing-song-jia-she-ftpjin-xing-wen-jian-chuan-shu/</link>
      <pubDate>Mon, 24 Jan 2011 14:06:57 +0000</pubDate>
      <guid>https://liubonan.com/posts/xiang-wang-bing-xiang-li-zhuang-da-xiang-yi-yang-jian-dan-----qing-song-jia-she-ftpjin-xing-wen-jian-chuan-shu/</guid>
      <description>&lt;p&gt;“小脸，把你的实验报告用E-mail发给我吧！”“小脸，把你新下的电影用U盘拷给我吧！”“小脸，把你搜索到的升级补丁用QQ传给我吧！”……如今，你是否还在和同寝室的同学用这样诡异的方式相互传送文件？你是否还在用这样原始的模式传播资源？事实上，局域网内的文件传输，特别是较大体积的文件传输有比这更加快捷的方法。今天，我们就来讨论一下作为菜鸟级选手的我们，如何用Windows自带的功能简便地架设自己的FTP服务器，听起来如此高深的内容其实和往冰箱里装大象一样简单：把冰箱门开开（打开FTP）、把大象装进去（设置你的FTP）、把冰箱门关上（关闭你的FTP）。稍微熟悉一点网络的朋友都知道，FTP（File Transfer Protocol）是文件传输协议，他可以方便的实现Internet上的双向文件传输。网络上有很多专门进行FTP服务管理的软件，你可以使用他们来架设你的FTP服务器，但是，因为本文旨在介绍局域网内方便快捷的文件传输方法，所以用专业的FTP软件似乎就有点大材小用的感觉。Windows本身就自带FTP功能，只要进行简单的设置，完全就可以满足日常的需要。&lt;/p&gt;&#xA;&lt;p&gt;首先，我们要打开Windows自带的FTP功能和IIS管理器功能。以Windows 7为例，选择“控制面板”中的“程序”，打开“打开与关闭Windows功能”，找到“Internet信息服务”，将这个文件夹下的“FTP服务”和“Web管理工具”两项全部选中（全部选中的标志是小对勾，小方块是部分选中），点击确定，Windows自动安装这两项功能。安装完成后，部分版本的Windows可能会要求重启电脑。这样，你就打开了Windows自带的FTP功能和IIS管理器。如果朋友们的这两项功能已经开启，则可以跳过此步骤。&lt;/p&gt;&#xA;&lt;p&gt;接下来，我们要设置我们的FTP站点。设置FTP站点需要使用到我们上一步安装的IIS管理器。打开“控制面板”中的“系统与安全”，双击“管理工具”，在管理工具中你可以看到刚才我们安装的“Internet信息服务（IIS）管理器”。双击它，你可以看到你的PC机现在所运行的所有网站（服务器）信息，当然，一般情况下，你的PC机因该是没有设置网站的，我们所要做的也正是向其中添加你的FTP服务器站点。在左侧的树型菜单中的“网站（Website）”文件夹上点击右键，选择“添加FTP站点”，此时你便可以进入傻瓜式的FTP站点的设置向导了。为你的FTP站定名称起一个你喜欢的名字，之后选择你要传送文件的目录。比如，我想把D盘movie文件夹下的“face.avi”传送给小脸同学，我就可以将此处的“物理路径”选为“d:\movie\”。单击下一步，在IP地址下拉列表中选择你的进行FTP传输设备的FTP地址。大多数朋友此处只有一个IP，只要选中即可；部分朋友可能会有两个IP，一个是有线网卡的，一个是无线网卡的，那么，就根据你进行FTP传输的方式选择相对应的IP。其它的选项可以不变，直接单击下一步。如果你为了方便，那么请在这一页身份验证选择“匿名”，这样在进行文件传输中不需要进行身份验证；如果对安全性要求较高，那么就不需要勾选。在下方的授权中，如果进行单项的传输，则将允许访问中设置为“所有用户”，权限设置为“读取”；如果想要进行双向传输，则可以勾选“读取”和“写入”两项权限。点击完成，你的FTP服务器就架设好了。需要指出的是，很多PC机上的安全软件（如各类防火墙、杀毒软件、安全卫士）都会禁止这样的FTP传输（甚至诱导用户关闭FTP服务），所以进行FTP传输时需要关闭这些软件或者将FTP服务设为“允许”或“开启”状态。现在，只要在局域网另一台电脑上的浏览器中输入“ftp:// ”+你刚才设置的IP地址，如“ftp://192.168.0.1”就可以看到你所设置的目录当中的所有文件了。比如在上例当中，小脸同学就可以通过输入这样的地址，将face.avi拷到自己的硬盘中。FTP传输还有一个优点就在于，多个同学可以同时从你的机器上将一个文件复制下来，而不需要你单独的进行设置。&amp;lt;&lt;/p&gt;&#xA;&lt;p&gt;最后，在完成了FTP传输后，我建议大家将刚才设置的FTP服务关闭。因为为了便捷，我们并没有设置较高的安全措施，所以用此办法长期不间断的开启FTP是不明智的，我们可以同样在IIS管理器中，选择你设置的FTP服务器，点击右键，选择“删除”来删除刚才设置的站点。你只需要删除你建立的FTP站点而并不用关闭你的PC机的FTP功能，这样，当你下次进行FTP传输时，只需要从本文所讲的新增FTP站点这一步开始。经过笔者的测试，如果你已经安装过FTP服务，那么前后的设置时间不超过1分钟，绝对要比你用其他的方式传送快捷的多。&lt;/p&gt;&#xA;&lt;p&gt;当然，FTP管理博大精深，其专业的管理软件具有复杂的功能和完善的权限管理，本文只介绍了非计算机专业的朋友们最常用的功能。在今后的文章中，我还会向大家介绍基于FTP服务的版本控制管理方法，欢迎大家继续关注好梦楠圆。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;精彩预告：&lt;/strong&gt;&#xA;好梦楠圆将在近期推出全国计算机等级考试（NCRE）“公共基础知识”、“二级C语言”及“三级网络技术”的相关文章，敬请关注。&#xA;———————————————————–&#xA;本文为好梦楠圆原创作品，欢迎任何形式的未删改的转载。你不用告诉我你转到了哪里，但是请务必注明本文出自好梦楠圆。&#xA;好梦楠圆网址：http://www.liubonan.com&#xA;好梦楠圆微博：http://t.sina.com.cn/smzfeng&lt;/p&gt;</description>
    </item>
    <item>
      <title>超低成本打造你的专属留学申请网站（域名篇）</title>
      <link>https://liubonan.com/posts/chao-di-cheng-ben-da-zao-ni-de-zhuan-shu-liu-xue-shen-qing-wang-zhan--yu-ming-pian/</link>
      <pubDate>Mon, 17 Jan 2011 09:30:07 +0000</pubDate>
      <guid>https://liubonan.com/posts/chao-di-cheng-ben-da-zao-ni-de-zhuan-shu-liu-xue-shen-qing-wang-zhan--yu-ming-pian/</guid>
      <description>&lt;p&gt;作为本系列的最后一篇文章——域名篇，本文将介绍一些为你的留学网站锦上添花的东西。本文将主要介绍一些info域名的申请、域名解析及网站优化的内容。&lt;/p&gt;&#xA;&lt;p&gt;在《来自南太平洋小岛的免费国际顶级域名》一文中，我曾介绍了托克劳群岛.tk域名的申请方法，但是此域名的DNS服务器长期处在不稳定的状态下，因此，我仍然建议大家申请其它的顶级域名。鉴于本文在寻找稳定而廉价的域名，因此我向大家推荐.info域名。在国内注册.info域名一般价格高昂，因此推荐大家到美国最大的域名服务商www.GoDaddy.com 进行注册（据称它也是世界最大的域名服务商）。在www.GoDaddy.com 注册.info域名一般只需要1.99美元，如果你有可以进行国际支付的信用卡（我想申请留学的同学一定都有），那么你就可以直接将它买下。注册之后，点击购买，根据提示，很简单就可以获得这个域名。当然，如果你愿意等，那么你可以参加团购，一般8元人民币左右可以团购到.info域名，这个域名可以由组织团购者push给你。 &lt;a href=&#34;https://www.GoDaddy.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.GoDaddy.com&lt;/a&gt; 已经有一套完善的域名转让系统，手续简便，因此参加团购是一个非常合算的选择。&lt;/p&gt;&#xA;&lt;p&gt;购买域名后，你需要对域名进行解析。域名的解析系统&lt;/p&gt;</description>
    </item>
    <item>
      <title>超低成本打造你的专属留学申请网站（网站篇）</title>
      <link>https://liubonan.com/posts/chao-di-cheng-ben-da-zao-ni-de-zhuan-shu-liu-xue-shen-qing-wang-zhan--wang-zhan-pian/</link>
      <pubDate>Thu, 13 Jan 2011 14:51:18 +0000</pubDate>
      <guid>https://liubonan.com/posts/chao-di-cheng-ben-da-zao-ni-de-zhuan-shu-liu-xue-shen-qing-wang-zhan--wang-zhan-pian/</guid>
      <description>&lt;p&gt;最近一直在弄好梦楠圆的域名备案事宜，所以这个系列的文章发出的稍有些晚，好在备案终于通过了四川省信管局的审核。言归正传，上回说到主机的申请，这次我主要以wordpress为例讲讲傻瓜式网站的建设。&lt;/p&gt;&#xA;&lt;p&gt;wordpress是国际最流行的一款开源、免费的个人博客系统，也有人把其归为CMS（content management system），但是我认为，其规模毕竟很小，还是将其定义为简单的个人博客发布系统更加恰当。Microsoft在中国放弃了其livespace服务之后，也向所有用户推荐了wordpress系统（只可惜中国部分地区的网民无法访问wordpress.com的内容），可见业内对其的认可程度。所有人都可以通过wordpress.org（不是wordpress.com）免费下载到最新版本，下载的时候可以选择多种语言。对于初学者，我是建议大家使用中文的；但是因为我们现在打造的是留学网站，所以使用英文会更便于录取委员会阅读你的申请材料。事实上，我个人也更喜欢英文版，因为整个wordpress的核心代码是由大量的志愿者编写而成的，而他们大多习惯于使用英语，这样就使得很多配套的插件、模板更加多样化，字体和外观与主程序更加的协调。&lt;/p&gt;&#xA;&lt;p&gt;你得到wordpress安装包之后，你就可以使用FTP工具将其上传到你购买的主机空间了。以FlashFXP为例，打开软件后选择快速链接，将申请主机时服务上所提供的IP地址、FTP用户名、密码填入后点击链接。你可以将rar压缩包里面的内容依次的上传到你的主机空间中（大部分主机商需要你将文件上传到web文件夹之中而非根目录），也可以将其整体上传后使用在线解压功能。部分主机商甚至提供预装系统的功能，那么你可以直接选择安装wordpress。上传和解压结束后，你就可以打开浏览器，输入主机商提供的二级或者三级域名，进行网站的初始化。初始化工程当中，你需要配置你的wp-config.php文件。此文件配置过程中主要需要用到你的数据库名称、数据库用户名和密码，无论你是否有使用数据库的经验，只要将这些内容正确的填入相应的位置，就可以成功的完成配置。接着，设置你的站名、管理员用户名、密码、密码找回邮箱后，你的网站就大功告成了。用你的用户名和密码登陆，你会发现，原来他和普通博客一样易于操作，但是，你可以有更大的自由来变换你的网站。&lt;/p&gt;&#xA;&lt;p&gt;讲到这里，事实上留学网站就已经建好了，剩下的仅仅是需要将你的所有材料像发表博文一样发到博客上，那么，录取委员会就可以在线查看你的资料了，更重要的是，你可以不断的更新你的信息而不受deadline的限制。当然，本着精益求精的精神，我会在好梦楠圆的下期文章《超低成本打造你的专属留学申请网站（域名篇）》当中详述低成本打造个性域名的内容，相信，这样的“面子工程”，在你的留学网站建设中，一定也是十分重要的一环。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;精彩预告：&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;好梦楠圆将在本系列结束之后推出全国计算机等级考试公共基础知识二级c语言及三级网络技术的相关文章敬请关注&#34;&gt;&#xA;  好梦楠圆将在本系列结束之后推出全国计算机等级考试“公共基础知识”、“二级C语言”及“三级网络技术”的相关文章，敬请关注。&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%a5%bd%e6%a2%a6%e6%a5%a0%e5%9c%86%e5%b0%86%e5%9c%a8%e6%9c%ac%e7%b3%bb%e5%88%97%e7%bb%93%e6%9d%9f%e4%b9%8b%e5%90%8e%e6%8e%a8%e5%87%ba%e5%85%a8%e5%9b%bd%e8%ae%a1%e7%ae%97%e6%9c%ba%e7%ad%89%e7%ba%a7%e8%80%83%e8%af%95%e5%85%ac%e5%85%b1%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86%e4%ba%8c%e7%ba%a7c%e8%af%ad%e8%a8%80%e5%8f%8a%e4%b8%89%e7%ba%a7%e7%bd%91%e7%bb%9c%e6%8a%80%e6%9c%af%e7%9a%84%e7%9b%b8%e5%85%b3%e6%96%87%e7%ab%a0%e6%95%ac%e8%af%b7%e5%85%b3%e6%b3%a8&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;本文为好梦楠圆原创作品，欢迎任何形式的未删改的转载。你不用告诉我你转到了哪里，但是请务必注明本文出自好梦楠圆。&lt;/p&gt;</description>
    </item>
    <item>
      <title>超低成本打造你的专属留学申请网站（主机篇）</title>
      <link>https://liubonan.com/posts/chao-di-cheng-ben-da-zao-ni-de-zhuan-shu-liu-xue-shen-qing-wang-zhan--zhu-ji-pian/</link>
      <pubDate>Sun, 09 Jan 2011 07:06:54 +0000</pubDate>
      <guid>https://liubonan.com/posts/chao-di-cheng-ben-da-zao-ni-de-zhuan-shu-liu-xue-shen-qing-wang-zhan--zhu-ji-pian/</guid>
      <description>&lt;p&gt;现在正是留学申请的高峰时期，很多学校极度的鼓励申请这么提供Homepage或者URLs来提供更多的申请材料，为此，“好梦楠圆”将连续三期分别推出“超低成本打造你的专属留学申请网站”主机篇、网站篇与域名篇来讲解如何在忙碌的申请中以超低成本打造你的专属留学申请网站。在这里，主机相当于你网站的“家”，网站就相当于你网站的“长相”，而域名就相当于你网站的“名字”。&lt;/p&gt;&#xA;&lt;p&gt;这里所谓的超低成本即包括时间成本，也包括经济成本。申请者往往都是忙碌的，建站这样的事情一般想来，都要花费一定的时间和精力，许多人都觉得不划算，还不如把这个时间拿出来好好改一下自己的文书，不过，让很多美国大学的网申系统（如Boston U和CMU）都留有提供URLs的地方，更是有一些学校（比如Stanford和UCB）除了通过提供网址以外，均无法将自己独特的申请材料提供给录取委员会，而对于亚洲地区的一些高校（如HKUST），他们都建议提供你发表论文的链接，而把付费期刊数据库的链接填到此处显然是不合适的。那么有没有两全的解决方案呢？&lt;/p&gt;&#xA;&lt;p&gt;很多人会第一时间想到博客。但是博客的自主性很差，很难体现你的个性化的一面，另外，国内博客多为中文，在国外显示也极有可能出现乱码，同时对于留学申请中广泛使用的PDF文件，也很难找到完美的解决方案，因此我不建议选择这个。另一个可能的方案是免费域名+免费主机，免费的顶级国际域名申请方法我已经在《来自南太平洋小岛的免费国际顶级域名》一文中进行了讲解，免费主机的申请也十分简单，但是，“稳定性”成为了这两个免费午餐的硬伤，对于一辈子只做一次申请的申请者们来说，如果录取委员会正在查看你的材料却“偶遇”不稳定，岂不是想哭都没有眼泪，因此，这个方案也不推荐。&lt;/p&gt;&#xA;&lt;p&gt;我在这里推荐的方案是“廉价顶级域名+廉价主机+附送数据库”的方案。本文主要来说一下廉价主机。略微有点计算机知识的同学必然知道，要想建设动态网站，数据库是一定要有的，因为个人留学申请网站内容较少，所以主机商提供的50M左右的数据库已经完全够我们使用。可是申请者又如何完成网站代码编写的繁重工作呢？IT产业发展到现在，早已不用大家亲自敲代码了，就和很多软件工程当中自动生成代码的工具一样，普通的使用者完全可以使用一个开源的或者免费的成型网站系统来搭建自己的网站。对于个人留学申请网站来说，我建议大家用一个简单的博客系统会更加容易操作。主流的开源或免费的博客系统有很多，国外的wordpress和国内的PJBlog都是很优秀的产品，他们分别基于PHP和ASP技术，经过我自身的试用，个人感觉wordpress经过多年的发展，其易用性和灵活性更强，因此，我也以wordpress为例来建设我们自己的留学网站。&lt;/p&gt;&#xA;&lt;p&gt;好了，铺垫了这么多，终于可以动手了。其实真正动手以后，是十分简单的，不要忘记本文的标题——“超”低成本！！！前面说到，wordpress是基于PHP技术的，因此大家要选择一个PHP的主机或者是全能主机。在百度或者淘宝上搜索PHP主机，你会发现很多的主机提供商，主机的地址主要有国内双线、国内电信、香港主机、韩国主机和美国主机。一般来说，美国的主机在价格上比较有优势，尽管大陆访问的速度慢一些，但是如果你申请的是美国的学校，速度问题就不是问题了。而且，大陆的主机需要备案，正如好梦楠圆迟迟无法正式上线一样，备案的速度是比蜗牛还要慢的，大家不可能让录取委员会等备案成功后再来看你的材料。因为申请往往只持续半年，因此你可以买半年的美国虚拟主机。主机的价格千差万别，性能指标有很多，比较主要的几个是主机空间大小、IIS限制、CPU分配率、流量限制等等。因为我们并不做大型的应用，所以选择最小的空间；因为不可能有几十个教授同时点击你的申请网站，所以直接无视IIS限制；同样因为你的网站规模很小，流量限制只要达到G级以上，也基本可以无视；对以CPU分配率要关注一下，对于我们要建设的这样一个小型的网站来说，重要的不是CPU分配率的值的大小，而是你实际的访问体验，因为每台服务器上虚拟主机的数目、硬件的性能、使用的年限都会影响真正的访问体验，一定要要让主机提供商发来一个测试网站自己体验一下访问的流畅程度。总之，你所要买的就是带有一个数据库的（注意，wordpress用户要选择Mysql数据库）、具有良好访问体验并且机房在美国的、你能买到的最便宜的主机。这样档次的机器在淘宝上大概可以卖到20/6个月、30/年的样子，大家自己选择一下就可以，这也是网站打造的主要经济成本。交易成功之后，你会获得虚拟主机地址、一个二级甚至三级域名和你虚拟主机的FTP的相关信息。&lt;/p&gt;&#xA;&lt;p&gt;我们的网站终于有一个家了，现在，你只需到网上下载一个wordpress安装包（虽然已经有中文版本，但我还是推荐大家下载英文版本的使用）、一个FTP共享软件就可以开始建设网站了。关于网站建设的具体步骤，请关注好梦楠圆的下期文章《超低成本打造你的专属留学申请网站（网站篇）》。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;精彩预告&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;p&gt;“好梦楠圆”将在本系列结束之后推出全国计算机等级考试“二级C语言”及“三级网络技术”的相关文章，敬请关注。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;本文为“好梦楠圆”（www.liubonan.com）原创作品，欢迎任何形式的&lt;strong&gt;未删改&lt;/strong&gt;的转载。你不用告诉我你转到了哪里，但是请务必注明本文出自“好梦楠圆”（www.liubonan.com）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>来自南太平洋小岛的免费国际顶级域名</title>
      <link>https://liubonan.com/posts/lai-zi-nan-tai-ping-yang-xiao-dao-de-mian-fei-guo-ji-ding-ji-yu-ming/</link>
      <pubDate>Sun, 09 Jan 2011 07:04:51 +0000</pubDate>
      <guid>https://liubonan.com/posts/lai-zi-nan-tai-ping-yang-xiao-dao-de-mian-fei-guo-ji-ding-ji-yu-ming/</guid>
      <description>&lt;p&gt;预言家说，100年后随着可再生能源的普及，化石能源将不再是稀缺资源，靠能源出口维持经济发展的国家也不会像今天一样繁荣。那么，100年后什么才会是稀缺资源？带宽和域名！！！带宽我们先不讨论，让我们首先看看域名的争夺战吧。想必大家对谷歌天价赎回域名的消息都略有耳闻，对于“抢注域名”这样的名词也并不陌生，如今普通的.com域名都要几十元每年，一个.net/.cc的域名的涨势更是有像CPI看齐的趋势，那么，身为草根网民的我们难道就无法注册自己的域名？&lt;/p&gt;&#xA;&lt;p&gt;南太平洋的一个小岛托克劳群岛为我们带来了不小的惊喜。.tk是托克劳群岛的域名，属于国际顶级域名，近期，这个域名一直处于免费注册的状态。没错，确实是免费注册的，也就是说你要注册一个liubonan.tk这样的域名完全不用花一分钱。更让人激动的是，负责.tk域名注册的域名分配机构网站竟然有中文版！进入&lt;a href=&#34;http://www.dot.tk/zh/index.html?lang=zh&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://www.dot.tk/zh/index.html?lang=zh&lt;/a&gt;首先输入你想要注册的域名（注意不要输入www，www是主机名，后面的部分才是域名），之后按照傻瓜型的提示完成注册过程即可。注册过程中的第一部需要你选择“转发URL网址”还是进行“DNS解析”。还没有申请虚拟主机的朋友可以使用转发URL功能，将你的博客地址填入转发地址框中，以后你就可以用&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;http://yourname.tk/&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://yourname.tk/&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;这样的超短网址访问你的博客了（貌似此功能已被CNNIC禁止，国外或者翻墙可以使用）；如果设置DNS解析，只要将“A解析”解析到你的服务器地址就可以，如果你的服务器还要进行做FTP的话，那就还要设置一下“CNAME解析”。注册过程全部完成了之后，10-20分钟后你的域名就可以使用了。当然世界上并没有绝对免费的午餐，如果90天内你的域名访问数少于25，你的域名将会被无情删除。&lt;/p&gt;&#xA;&lt;p&gt;有了域名可以做什么？如果你仅仅是将域名转发到你的博客的话，这个域名或许仅仅是骗小学妹的把戏而已；但是，如果你有自己的虚拟主机的话，你就可以通过SEO挣钱，可以加入站群，甚至可以有自己的邮件服务器，拥有类似于&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;mailto:liubonan@liubonan.tk&#34; &gt;liubonan@liubonan.tk&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;这样的邮箱。至于草根网民如何申请虚拟主机的文章，请您关注好梦楠圆后续的文章。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;本文为“好梦楠圆”（&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;）原创作品，欢迎任何形式的&lt;!-- raw HTML omitted --&gt;未删改&lt;!-- raw HTML omitted --&gt;的转载。你不用告诉我你转到了哪里，但是请务必注明本文出自“好梦楠圆”（&lt;!-- raw HTML omitted --&gt;&lt;a href=&#34;https://www.liubonan.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;www.liubonan.com&lt;/a&gt;&lt;!-- raw HTML omitted --&gt;）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>access无法更新问题的解决</title>
      <link>https://liubonan.com/posts/accesswu-fa-geng-xin-wen-ti-de-jie-jue/</link>
      <pubDate>Thu, 26 Nov 2009 20:28:00 +0000</pubDate>
      <guid>https://liubonan.com/posts/accesswu-fa-geng-xin-wen-ti-de-jie-jue/</guid>
      <description>&lt;p&gt;愚蠢的我竟然因为这个简单的问题别困扰了3个多小时，感谢这篇技术文章……虽然很简单。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://blog.csdn.net/gaoyongxing/archive/2008/06/19/2564117.aspx&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;http://blog.csdn.net/gaoyongxing/archive/2008/06/19/2564117.aspx&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;以此警示后人和自己……&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
