📝 数据结构和算法

20661篇技术文档
  数据结构示例-创建n个节点的循环链表并反序打印

📅  最后修改于: 2020-10-15 05:48:44        🧑  作者: Mango

问:程序创建一个n个节点的循环链接列表,并以相反的顺序显示它。说明在此程序中,我们创建一个循环链接列表,然后以相反的顺序遍历该列表并print节点。算法定义一个Node类,该类代表列表中的一个节点。它具有两个属性数据,下一个将指向下一个节点。定义另一个用于创建循环链接列表的类,它具有两个节点:head和tail。它有两种方法:add(),display()和reverse()。add()将节点添加...

  数据结构示例-创建并显示循环链表

📅  最后修改于: 2020-10-15 05:49:54        🧑  作者: Mango

问:程序创建和显示循环链接列表。说明在此程序中,我们将创建一个循环链接列表,并print列表中存在的所有节点。循环链表:循环链表是一种链表。首先,节点是列表的元素,它具有两个部分,分别是数据和下一部分。数据表示存储在节点中的数据,下一个是指向下一个节点的指针。头将指向列表的第一个元素,而尾将指向列表的最后一个元素。在简单链表中,所有节点都将指向其下一个元素,而尾部将指向null。循环链表是节点的集...

  数据结构示例-删除循环链表的开头节点

📅  最后修改于: 2020-10-15 05:51:15        🧑  作者: Mango

问:程序从循环链表的开头删除一个新节点。说明在此程序中,我们将创建一个循环链接列表,并从列表的开头删除一个节点。如果列表为空,则print消息“列表为空”。如果列表不为空,我们将使头部指向列表中的下一个节点,即,我们将删除第一个节点。从头删除节点后的循环链表在此,A代表列表的开头。我们需要从列表的开头删除一个节点。因此,我们将删除A,以使B成为新的头部,而尾部将指向新的头部。算法定义一个Node类...

  数据结构示例-删除循环链表的末尾节点

📅  最后修改于: 2020-10-15 05:52:39        🧑  作者: Mango

问:程序从循环链表的末尾删除一个新节点。说明在此程序中,我们将创建一个循环链接列表,并从列表末尾删除一个节点。如果列表为空,将显示消息“列表为空”。如果列表不为空,我们将循环浏览列表,直到到达倒数第二个节点。我们将倒数第二个节点作为新的尾巴,而这个新的尾巴将指向头并删除前一个尾巴。从末端删除节点后的循环链表在上面的列表中,D是最后一个需要删除的节点。我们将遍历列表直到C。将C设为新尾巴,C指向头A...

  数据结构示例-删除循环链表中间节点

📅  最后修改于: 2020-10-15 05:54:14        🧑  作者: Mango

问:程序从循环链表的中间删除一个新节点。说明在此程序中,我们将创建一个循环链接列表,并从列表中间删除一个节点。如果列表为空,则显示消息“列表为空”。如果列表不为空,我们将计算列表的大小,然后将其除以2得到列表的中点。我们保持两个指针temp和current。当前将指向温度的前一个节点。我们将遍历列表直到到达中间点,然后当前点将指向中间节点。我们删除中间节点,使当前的下一个节点成为临时的下一个节点。...

  数据结构示例-查找循环列表中的最大和最小值节点

📅  最后修改于: 2020-10-15 05:55:34        🧑  作者: Mango

程序从循环链表中查找最大值和最小值节点说明在此程序中,我们将创建一个循环链接列表,然后遍历该列表以找出最小和最大节点。9-> 5-> 2-> 7-> 3我们将维护两个变量min和max。最小值将保存最小值节点,最大值将保存最大值节点。在上面的示例中,2将是最小值节点,而9将是最大值节点。算法定义一个Node类,该类代表列表中的一个节点。它具有两个属性数据,下一个将指向下一个节点。定义另一个用于创建...

  数据结构示例-循环链表的开头插入新节点

📅  最后修改于: 2020-10-15 05:56:51        🧑  作者: Mango

问:程序在循环链表的开头插入一个新节点。说明在此程序中,我们将创建一个循环链接列表,并将每个新节点插入列表的开头。如果列表为空,则头和尾将指向新添加的节点。如果列表不为空,则将头的数据存储到临时节点temp中,并以新节点作为头。这个新头将指向临时节点。简而言之,新添加的节点将成为列表的第一个节点(头),而先前的head(临时)将成为列表的第二个节点。在将新节点插入列表的开头之后New表示新添加的节...

  数据结构示例-循环链表的末端插入新节点

📅  最后修改于: 2020-10-15 05:58:06        🧑  作者: Mango

问:程序在循环链表的末尾插入一个新节点。说明在此程序中,我们将创建一个循环链接列表,并将每个新节点插入列表的末尾。如果列表为空,则头和尾将指向新添加的节点。如果列表不为空,则新添加的节点将成为列表的新尾部。前一条尾巴将指向新节点作为其下一个节点。由于它是一个循环链表;新的尾巴将指向头部。换句话说,新节点将成为列表的最后一个节点(尾),而前一条尾将成为倒数第二个节点。将新节点插入列表的末尾New表示...

  数据结构示例-循环链表的中间插入新节点

📅  最后修改于: 2020-10-15 06:06:23        🧑  作者: Mango

问:程序在循环链表的中间插入一个新节点。说明在此程序中,我们创建一个循环链接列表,并在列表中间插入一个新节点。如果列表为空,头和尾都将指向新节点。如果列表不为空,则我们将计算列表的大小,然后将其除以2,以获得列表中点,需要在其中插入新节点。在列表中间插入新节点之后。考虑上图;新节点需要添加到列表的中间。首先,我们计算大小(在这种情况下为4)。因此,要获得中点,我们将其除以2并将其存储在变量计数中。...

  数据结构示例-删除循环链表中重复的元素

📅  最后修改于: 2020-10-15 06:07:39        🧑  作者: Mango

问:程序从循环链表中删除重复的元素。说明在此程序中,我们将创建一个循环链接列表,并从列表中删除重复的节点。我们将把一个节点与列表的其余部分进行比较,并检查是否重复。如果找到重复节点,请从列表中删除重复节点。1-> 2-> 2-> 4-> 3在上面的列表中,我们可以看到,节点2在列表中存在两次。因此,我们将有一个节点电流将遍历列表。索引将指向当前的下一个节点。 Temp将指向索引之前的节点。找到重复...

  数据结构示例-在循环链表中搜索元素

📅  最后修改于: 2020-10-15 06:08:54        🧑  作者: Mango

问:程序搜索循环链表中的元素。说明在此程序中,我们创建一个循环链接列表并在列表中搜索一个节点。9-> 5-> 2-> 7-> 3考虑上面的例子。假设我们需要搜索节点5。要解决此问题,我们将遍历列表并将每个节点与5进行比较。如果找到匹配项,则将标志设置为true,并打印出节点5的位置。在此示例中,节点5位于位置2。算法定义一个Node类,该类代表列表中的一个节点。它具有两个属性数据,下一个将指向下一...

  数据结构示例-循环链表的元素排序

📅  最后修改于: 2020-10-15 06:10:11        🧑  作者: Mango

问:程序来排序循环链表的元素。说明在此程序中,我们将创建一个循环链接列表,并按升序对列表进行排序。在此示例中,我们维护两个节点:current将指向head的节点和index将指向current的下一个节点。第一个循环跟踪当前,第二个循环跟踪索引。在第一个迭代中,当前将指向9。索引将指向当前旁边的节点,在本例中为5。将9与5进行比较,因为9> 5,将索引节点的数据与当前节点交换。现在,当前将有5。...

  数据结构示例-计算二叉树中奇数和偶数节点之和的差

📅  最后修改于: 2020-10-15 06:12:09        🧑  作者: Mango

问:程序计算二叉树的奇数级和偶数级节点之和之间的差。说明在此程序中,我们需要计算奇数级上存在的节点总数与偶数级上存在的节点总数之差。假设,如果一棵树包含5个级别,则在上图中,奇数级用蓝色虚线表示,偶数用绿色表示。算法定义具有三个属性的Node类,分别是:data,left和right。在此,左代表节点的左子节点,右代表节点的右子节点。创建节点后,请为节点的数据部分分配一个适当的值,其左,右子级为N...

  数据结构示例-构造一个二叉搜索树并执行删除和有序遍历

📅  最后修改于: 2020-10-15 06:14:07        🧑  作者: Mango

问:程序构造一个二叉搜索树并执行删除和有序遍历。说明在此程序中,我们需要创建一个二进制搜索树,从该树中删除一个节点,并通过使用有序遍历遍历该树来显示该树的节点。在有序遍历中,对于给定的节点,首先遍历左孩子,然后是根孩子,然后是右孩子(左->根->右)。在二叉搜索树中,出现在根左侧的所有节点都将小于根节点,出现在右侧的节点将大于根节点。插入:如果新节点的值小于根节点,则它将被插入到左子树中。如果新节...

  数据结构示例-将二叉树转换为二叉搜索树

📅  最后修改于: 2020-10-15 06:15:45        🧑  作者: Mango

问:将二进制树转换为二进制搜索树的程序。说明在此程序中,我们需要将给定的二叉树转换为相应的二叉树。如果每个节点最多有两个子代,则将一棵树称为二叉树。而二叉搜索树是二叉树的一种特殊情况,其中根节点左侧的所有节点都应小于根节点,而右侧节点则应大于根节点。通过将给定的二叉树转换为其相应的数组表示形式,可以解决此问题。对数组进行排序。根据数组元素计算中间节点,因为它将成为相应的二进制搜索树的根节点。算法定...