色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 怎么生成樹狀的json

錢瀠龍1年前7瀏覽0評論

C語言是一種面向過程的編程語言,常用于系統軟件等底層開發。在開發過程中,有時需要將數據以樹狀結構的形式展示出來,這時就需要生成對應的JSON數據。下面介紹一種生成樹狀JSON的方法。

#include <stdio.h>
#include <stdlib.h>
struct Tree {
int val;
struct Tree *left;
struct Tree *right;
};
struct Tree* createNode(int val) {
struct Tree* newNode = (struct Tree*)malloc(sizeof(struct Tree));
newNode->val = val;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
void addNode(struct Tree* node, int val) {
if (node->val >val) {
if (node->left == NULL) {
node->left = createNode(val);
} else {
addNode(node->left, val);
}
} else {
if (node->right == NULL) {
node->right = createNode(val);
} else {
addNode(node->right, val);
}
}
}
void printTree(struct Tree* node) {
printf("{\"val\": %d,", node->val);
if (node->left != NULL || node->right != NULL) {
printf("\"children\": [");
if (node->left != NULL) {
printTree(node->left);
}
if (node->right != NULL) {
if (node->left != NULL) {
printf(",");
}
printTree(node->right);
}
printf("]");
}
printf("}");
}
int main() {
struct Tree *root = createNode(15);
addNode(root, 8);
addNode(root, 20);
addNode(root, 6);
addNode(root, 10);
addNode(root, 17);
addNode(root, 25);
printTree(root);
return 0;
}

以上代碼中,我們首先定義了一個二叉樹節點結構,其中包含節點值以及左右子節點指針。接著分別定義了創建節點和添加節點的函數。最后實現了一個打印樹結構的函數,該函數利用遞歸算法打印出每個節點及其對應的子節點。

在main函數中,我們首先創建了一個根節點,然后不斷調用addNode函數往樹中添加元素,最終打印出整個樹結構。打印出來的JSON數據可以直接用于前端展示。