leetcode102題,二叉樹的層次遍歷
leetcode199題,二叉樹的右檢視
佇列的思路如下:
1、有head、tail
2、入隊靠tail,出隊靠head
3、如果每輪需要出隊,那麼把tail-head存下來,做乙個for迴圈!!!非常重要
#define maxlen 1000
intenqueue
(struct treenode* root,
int tail,
struct treenode * que)
que[tail++
]= root;
return tail;
}int
*rightsideview
(struct treenode* root,
int* returnsize)
queue[tail++
]= root;
while
(head < tail)
head++;}
}int
*ret =
(int*)
malloc
(sizeof
(int
)*count)
;memcpy
(ret, tmp,
sizeof
(int
)*count)
;*returnsize = count;
return ret;
}
int
gets_tree_row
(struct treenode* root)
int a =
gets_tree_row
(root->left)
;int b =
gets_tree_row
(root->right)
;return a>b ?
(a+1):
(b+1);
}int**
levelorder
(struct treenode* root,
int* returnsize,
int*
* returncolumnsizes)
* returnsize =
gets_tree_row
(root)
;int row =
*returnsize;
int head, tail, tmptail;
tail = head =0;
struct treenode * queue[
1000];
struct treenode * tmp;
int*
* res =
(int**
)malloc
(sizeof
(int*)
* row)
;*returncolumnsizes =
(int*)
malloc
(sizeof
(int
)* row)
; queue[tail++
]= root;
//put root in queue
int i =
0, j =0;
while
(head < tail)
if(tmp->right !=
null
) res[i]
[j]= tmp->val;
} i++;}
return res;
}
資料結構 c 佇列
佇列是先進先出 fifo 的線性表,元素從隊尾進從隊頭出,有的時候也是比較常用的,同樣分為順序儲存結構和鏈式儲存結構,其中順序儲存結構可以實現迴圈佇列。首先同樣先定義結構體,同樣佇列應包含有隊頭指標和隊尾指標,分別指向頭結點和隊尾結點,而指向的結點需有資料域和指向下個結點的指標域 include i...
C 資料結構 佇列
佇列是一種特殊線性的資料結構,也是一種運算受限制的線性表,跟棧恰好相反運算規則先進先出。插入元素叫做入隊或者進隊,插入的一方叫做隊尾 刪除元素叫做出隊,刪除的一端叫做隊首。順序表佇列 class sqqueueclass 非迴圈佇列 region 判斷佇列是否為空 public bool queue...
C 資料結構 佇列
佇列作為線性表的另乙個資料結構,只允許在表的前端進行刪除操作,而在表的後端進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。先來看下用法 queue queue newqueue queue.enqueue 1 queue.enqueue 2 queue.enqueue 3 queue.enqu...