C資料結構 佇列

2021-10-03 11:30:51 字數 1850 閱讀 3380

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...