212 次查看
让我们首先定义一个结构体,它将表示一个树节点,其中包含一个字符键和一个 Node* 的向量。struct Node{ char key; vector<Node*> children; };接下来,我们创建 createNode(int key) 函数,它接受一个 int 键值并将其分配给节点的 key 成员。该函数返回指向已创建的结构体节点的指针。Node *createNode(int key){ Node *node = new Node; node->key = key; return node; }我们的 depthOfTree(struct Node* root) 函数以根节点作为参数。如果根节点为 NULL,则深度返回为... 阅读更多
119 次查看
二叉树的密度是通过将其大小除以其高度来计算的。二叉树密度 = 大小/高度。让我们首先定义一个结构体,它将表示一个树节点,其中包含数据及其左子节点和右子节点。如果这是第一个创建的节点,则它是根节点,否则是子节点。struct Node { int data; struct Node *leftChild, *rightChild; };接下来,我们创建 createNode(int data) 函数,它接受一个 int 值并将其分配给节点的 data 成员。该函数返回指向已创建的结构体... 阅读更多
227 次查看
删除操作是通过用底部最右边的节点替换被删除的节点来执行的。让我们首先定义一个结构体,它将表示一个树节点,其中包含数据及其左子节点和右子节点。如果这是第一个创建的节点,则它是根节点,否则是子节点。struct Node { int data; struct Node *leftChild, *rightChild; };接下来,我们创建 newNode(int data) 函数,它接受一个 int 值并将其分配给节点的 data 成员。该函数返回指向已创建的结构体 Node 的指针。此外,... 阅读更多
111 次查看
为了找到对角线的长度,我们将边的值代入 2*side*sin (900/14)。sin (900/14) 的值为 0.9。示例让我们看看下面的实现,以了解如何从正七边形的边长得到其对角线 − 在线演示#include <iostream> using namespace std; int main(){ float side = 12; if (side < 0) return -1; float diagonal = 2*side*0.9; cout<<diagonal<<endl; return 0; }
164 次查看
Demlo 数是回文数,由 11..1 形式的数字的平方生成,前提是该数字小于 10 位。让我们首先声明字符串变量 −string demNum = "1111"; string square = "";现在,我们循环到 demNum 字符串的长度。在循环中,我们将索引值 i 转换为字符串并将其附加到 square 变量。for(int i=1 ;i<=demNum.length(); i++) square += char(i + '0');for(int i=demNum.length()-1; i >= 1; i--) square += char(i + '0');示例让我们看看下面的实现,以更好地理解 Demlo 数 − 在线演示#include <iostream> using namespace std; int main(){ string demNum = ... 阅读更多
78 次查看
让我们首先声明我们的初始字符串并计算其长度,然后将其传递给 deleteSubstr(str,length) 函数。string str = "01010110011"; int length = str.length(); cout<<deleteSubstr(str,length)<<endl;
148 次查看
让我们首先使用包含 int data、btree_node * rightChild、btree_node * leftChild 的类来定义我们的二叉树。leftChild 和 rightChild 是指向 btree_node 的指针。我们类中的所有成员都是公共的。class btree_node { public: int data; btree_node* leftChild; btree_node* rightChild;为了创建一个新节点,我们有一个构造函数,它接受 int 值作为参数,将其分配给新创建的节点值。leftChild 和 rightChild 设置为 null。btree_node(int data){ this->data = data; this->leftChild = NULL; this->rightChild = NULL; ... 阅读更多
168 次查看
让我们首先定义我们的链表,它包含数据和指向下一个节点的指针。struct Node { int data; struct Node* next; };然后,我们创建 createList(Node ** headPtr, int new_data) 函数,它接受指向 Node 的双指针和一个 int 值。在函数内部,我们将新创建的节点的 next 指针赋值给 headptr,然后将 headptr 赋值给新创建的节点。void createList(Node ** headPtr, int new_data){ Node* newNode = new Node(); newNode->data = new_data; newNode->next = (*headPtr); (*headPtr) = newNode; }deleteNnodesAfterM(Node *head, int M, int N) ... 阅读更多
345 次查看
让我们首先定义我们的链表,它包含数据和指向下一个节点的指针。struct Node { int data; struct Node* next; };接下来,我们创建 createNode(int data) 函数,它接受 int data 作为参数,并在赋值参数值后返回新创建的节点。节点的 next 指针将为 null。Node* createNode(int data){ struct Node* newNode = new Node; newNode->data = data; newNode->next = NULL; return newNode; }现在我们有 deleteMiddle(struct Node* head) 函数,它接受根节点。如果根节点不为 null,则它... 阅读更多
95 次查看
让我们首先定义一个结构体,它将表示一个树节点,其中包含数据及其左子节点和右子节点。如果这是第一个创建的节点,则它是根节点,否则是子节点。struct Node { int data; struct Node *leftChild, *rightChild; };接下来,我们创建 newNode(int data) 函数,它接受一个 int 值并将其分配给节点的 data 成员。该函数返回指向已创建的结构体 Node 的指针。此外,新创建节点的左子节点和右子节点都设置为 null。struct Node* newNode(int ... 阅读更多