你可以使用C语言中的结构体来表示树的节点。每个节点可以包含一个值和一个指向子节点的指针。下面是一个示例代码,可以根据输入的节点值打印出对应节点的所有下层节点:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 定义树的节点结构体
typedef struct Node {
    char value[100];
    struct Node* child;
    struct Node* sibling;
} Node;

// 创建新节点
Node* createNode(char value[]) {
    Node* node = (Node*)malloc(sizeof(Node));
    strcpy(node->value, value);
    node->child = NULL;
    node->sibling = NULL;
    return node;
}

// 添加子节点
void addChild(Node* parent, Node* child) {
    if (parent->child == NULL) {
        parent->child = child;
    } else {
        Node* sibling = parent->child;
        while (sibling->sibling != NULL) {
            sibling = sibling->sibling;
        }
        sibling->sibling = child;
    }
}

// 打印节点及其下层节点
void printSubtree(Node* node) {
    if (node == NULL) {
        return;
    }
    printf("%s\n", node->value);
    printSubtree(node->child);
    printSubtree(node->sibling);
}

int main() {
    // 创建树的节点
    Node* root = createNode("中国");
    Node* node1 = createNode("陕西");
    Node* node2 = createNode("江西");
    Node* node3 = createNode("亚洲");
    Node* node4 = createNode("泰国");
    Node* node5 = createNode("西安");
    
    // 构建树的结构
    addChild(root, node1);
    addChild(root, node2);
    addChild(root, node3);
    addChild(node3, node4);
    addChild(node1, node5);
    
    // 输入节点值
    char input[100];
    printf("请输入节点值:");
    scanf("%s", input);
    
    // 查找节点并打印下层节点
    Node* currentNode = root;
    while (currentNode != NULL) {
        if (strcmp(currentNode->value, input) == 0) {
            printSubtree(currentNode->child);
            break;
        }
        currentNode = currentNode->sibling;
    }
    
    return 0;
}

上述代码中,首先定义了一个树的节点结构体Node,包含一个值value,以及指向子节点child和兄弟节点sibling的指针。然后创建了树的节点,并通过addChild函数将节点连接起来形成树的结构。最后,通过输入的节点值,查找对应的节点,并调用printSubtree函数打印出该节点的所有下层节点。

运行程序后,输入节点值(如"陕西"),即可打印出对应节点的所有下层节点。

使用c语言编程通常使用多行的节点、父节点表示一棵树比如西安 陕西 陕西 中国 江西 中国中国 亚洲泰国 亚洲 输入一个节点之后请打印出来树中他的所有下层节点。

原文地址: https://www.cveoy.top/t/topic/jgtJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录