A simple queue Class
Queue.cpp@0:0237fc3fb9ca, 2015-04-09 (annotated)
- Committer:
- fredqian
- Date:
- Thu Apr 09 09:38:32 2015 +0000
- Revision:
- 0:0237fc3fb9ca
init commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fredqian | 0:0237fc3fb9ca | 1 | #include "Queue.h" |
fredqian | 0:0237fc3fb9ca | 2 | QUEUE::QUEUE() { |
fredqian | 0:0237fc3fb9ca | 3 | front=rear=0; |
fredqian | 0:0237fc3fb9ca | 4 | } |
fredqian | 0:0237fc3fb9ca | 5 | void QUEUE::init_queue() |
fredqian | 0:0237fc3fb9ca | 6 | { |
fredqian | 0:0237fc3fb9ca | 7 | front=rear=0; |
fredqian | 0:0237fc3fb9ca | 8 | } |
fredqian | 0:0237fc3fb9ca | 9 | uint8_t QUEUE::peerqueue() |
fredqian | 0:0237fc3fb9ca | 10 | { |
fredqian | 0:0237fc3fb9ca | 11 | uint8_t t=RFQUENEMAX; |
fredqian | 0:0237fc3fb9ca | 12 | if(front==rear)//¶ÓÁÐÊÇ¿Õ |
fredqian | 0:0237fc3fb9ca | 13 | { |
fredqian | 0:0237fc3fb9ca | 14 | return RFQUENEMAX; |
fredqian | 0:0237fc3fb9ca | 15 | } |
fredqian | 0:0237fc3fb9ca | 16 | t=front; |
fredqian | 0:0237fc3fb9ca | 17 | return t; |
fredqian | 0:0237fc3fb9ca | 18 | } |
fredqian | 0:0237fc3fb9ca | 19 | uint8_t QUEUE::inqueue() |
fredqian | 0:0237fc3fb9ca | 20 | { |
fredqian | 0:0237fc3fb9ca | 21 | uint8_t t=RFQUENEMAX; |
fredqian | 0:0237fc3fb9ca | 22 | if((rear+1)%RFQUENEMAX==front)//¶ÓÁÐÂú |
fredqian | 0:0237fc3fb9ca | 23 | { |
fredqian | 0:0237fc3fb9ca | 24 | return RFQUENEMAX ; |
fredqian | 0:0237fc3fb9ca | 25 | } |
fredqian | 0:0237fc3fb9ca | 26 | else//·ÇÂú |
fredqian | 0:0237fc3fb9ca | 27 | { |
fredqian | 0:0237fc3fb9ca | 28 | t=rear; |
fredqian | 0:0237fc3fb9ca | 29 | rear=(rear+1)%RFQUENEMAX; |
fredqian | 0:0237fc3fb9ca | 30 | } |
fredqian | 0:0237fc3fb9ca | 31 | return t; |
fredqian | 0:0237fc3fb9ca | 32 | } |
fredqian | 0:0237fc3fb9ca | 33 | uint8_t QUEUE::dequeue() |
fredqian | 0:0237fc3fb9ca | 34 | { |
fredqian | 0:0237fc3fb9ca | 35 | uint8_t t=RFQUENEMAX; |
fredqian | 0:0237fc3fb9ca | 36 | if(front==rear)//¶ÓÁÐÊÇ¿Õ |
fredqian | 0:0237fc3fb9ca | 37 | { |
fredqian | 0:0237fc3fb9ca | 38 | return RFQUENEMAX; |
fredqian | 0:0237fc3fb9ca | 39 | } |
fredqian | 0:0237fc3fb9ca | 40 | t=front; |
fredqian | 0:0237fc3fb9ca | 41 | front=(front+1) % RFQUENEMAX; |
fredqian | 0:0237fc3fb9ca | 42 | return t; |
fredqian | 0:0237fc3fb9ca | 43 | } |
fredqian | 0:0237fc3fb9ca | 44 | void QUEUE::undodequeue() //used for no ack get |
fredqian | 0:0237fc3fb9ca | 45 | { |
fredqian | 0:0237fc3fb9ca | 46 | front=(front+RFQUENEMAX-1) % RFQUENEMAX; |
fredqian | 0:0237fc3fb9ca | 47 | return ; |
fredqian | 0:0237fc3fb9ca | 48 | } |
fredqian | 0:0237fc3fb9ca | 49 |