云计算百科
云计算领域专业知识百科平台

三星机试 一些需要会的数据结构

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; }

赞(0)
未经允许不得转载:网硕互联帮助中心 » 三星机试 一些需要会的数据结构
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!