Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. /**
  2. * Definition for a binary tree node.
  3. * struct TreeNode {
  4. * int val;
  5. * struct TreeNode *left;
  6. * struct TreeNode *right;
  7. * };
  8. */
  9.  
  10. #define max(a,b) ((a > b)?(a):(b))
  11. #define get(a, i, j) a[i][j][0]
  12. #define set(a, i, j, k) a[i][j][0]=k;
  13.  
  14.  
  15. int height(struct TreeNode *root) {
  16. if (root == NULL)
  17. return 0;
  18.  
  19. int left = 1 + height(root->left);
  20. int right = 1 + height(root->right);
  21.  
  22. return max(left, right);
  23. }
  24.  
  25.  
  26. /**
  27. * Return an array of arrays of size *returnSize.
  28. * The sizes of the arrays are returned as *returnColumnSizes array.
  29. * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
  30. */
  31.  
  32. char ***init_grid(int n, int m) {
  33. char ***grid = (char ***) malloc(m * sizeof(char **));
  34.  
  35. if (grid == NULL)
  36. return NULL;
  37.  
  38. for (int i = 0; i < m; i++) {
  39. grid[i] = (char **) malloc(n * sizeof(char *));
  40.  
  41. if (grid[i] == NULL)
  42. return NULL;
  43.  
  44. for (int j = 0; j < n; j++) {
  45. grid[i][j] = (char *) malloc(1);
  46.  
  47. if (grid[i][j] == NULL)
  48. return NULL;
  49. grid[i][j][0] = 'A';
  50. }
  51. }
  52. return grid;
  53. }
  54.  
  55. void fill(char ***grid, struct TreeNode *root, int row, int col_low, int col_high) {
  56.  
  57. int mid = (col_high - col_low) / 2;
  58.  
  59. if (root == NULL) {
  60. //set(grid, row, mid, '\0');
  61. return;
  62. }
  63.  
  64.  
  65.  
  66. }
  67. char *** printTree(struct TreeNode* root, int* returnSize, int** returnColumnSizes){
  68. int m = height(root);
  69. int n = (1 << m) - 1; // ?
  70.  
  71. *returnSize = m;
  72. int *colSizes = (int *) malloc(m * sizeof(int));
  73. for (int i = 0; i < m; i++) colSizes[i] = n;
  74. *returnColumnSizes = colSizes;
  75.  
  76. char ***grid = init_grid(n, m);
  77.  
  78.  
  79. return NULL;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement