树
struct TreeNode{
int val;
struct TreeNode * left;
struct TreeNode * right;
}
struct TreeNode *createNode(int val){
struct TreeNode * node=(struct TreeNode*)malloc(sizeof(struct TreeNode));
node->val=val;
node->left=node->right=NULL;
return node;
}
struct TreeNode* buildTree(int v,int edges[][2],int v){
struct TreeNode** nodes=(struct TreeNode**)malloc((v+1)sizeof(struct TreeNode**));
for(int i=1;i<=v;i++){
node[i]=createNode(i);
}
for(int i=0;i<e;i++){
int parent=edges[i][0];
int child=edges[i][1];
if(node[parent]->left=NULL){
node[parent]->left=node[child];
}else{
node[parent]->right=node[child];
}
}
struct TreeNode* root=node[1];
free(nodes);
return root;
}
队列
// 定义队列结构 typedef struct { int data[MAX_V]; int front, rear; } Queue;
// 初始化队列 void initQueue(Queue* q) { q->front = q->rear = 0; }
// 入队 void enqueue(Queue* q, int value) { q->data[q->rear++] = value; }
// 出队 int dequeue(Queue* q) { return q->data[q->front++]; }
// 判断队列是否为空 int isEmpty(Queue* q) { return q->front == q->rear; }
评论前必须登录!
注册