[問題] 做出多個queue

看板C_and_CPP作者 (要衝刺!!!)時間13年前 (2012/03/23 20:42), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) DEV C++ 問題(Question): 想做出多個不同長度的queue 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdlib.h> #include<stdio.h> struct queue { int data; struct queue *next; }; queue* enqueue(queue *head, queue *tail, int num); int main() { int i; queue *head1=NULL; //目前只宣告第一個queue 之後想再多加幾個 queue *tail1=NULL; //可能會命名為head2.... queue *current=NULL; for(i=0;i<10;i++) { head1 = enqueue(head1, tail1, i); current = head1; while(current != NULL) { printf("%d\n", current->data); current = current->next; } } system("pause"); return 0; } queue *enqueue(queue *head, queue *tail, int num) { queue *newnode; newnode = (queue*)malloc(sizeof(queue)); (*newnode).data = num; newnode->next = NULL; if(tail == NULL) head = newnode; else tail->next = newnode; tail = newnode; return head; } 補充說明(Supplement): 結果為0 1 2 ... 9,完全不是queue = = ,我認為bug是在tail的部分 但又不想把head tail改為global,所以試著寫成local,就卡住了 之後想多弄出不同長度的queue,只要宣告不同的head,然後丟進enqueue 就可以任意插入到不同的queue,但實做不出來 希望可以提供些想法或技巧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.178.152

03/23 20:55, , 1F
你的問題是:main裡面的tail永遠都是NULL
03/23 20:55, 1F

03/23 20:55, , 2F
這是一種改法 http://ideone.com/PWmO1
03/23 20:55, 2F

03/24 06:27, , 3F
stack 和 que 的實際做出來,很適合使用 C++ 的物件導向
03/24 06:27, 3F

03/24 22:08, , 4F
要用C++...直接stl就好了呀
03/24 22:08, 4F

03/24 22:12, , 5F
而且 head與tail應該要包在一起的吧....
03/24 22:12, 5F
文章代碼(AID): #1FR6-wkb (C_and_CPP)