我正在实现一个带有链表的队列,该链表将使用简单的命令在同一个程序中发送和接收数据,我想为队列中的每个数据添加一个计数器,值是新的、未决的或 ack。那么我是将它存储在一个数组中还是有任何其他方式,因为计数器的数量会很大?
#define TOTALPACKETS 100
#define WINDOW 5
#define ACK 2
#define PENDING 1
#define NEW 0
typedef int Item ;
typedef struct node *link;
struct node{
Item data;
Item status;
link next;
};
int QUEUEempty(link head){
return head==NULL;
}
void QUEUEput(link *head, link *tail, Item data, Item status){
if (*head==NULL){
(*tail)=(link)malloc(sizeof(node));
(*tail)->data=data;
(*tail)->next=NULL;
(*tail)->status=NEW;
*head=*tail;
return;}
(*tail)->next=(link)malloc(sizeof(node));
*tail=(*tail)->next;
(*tail)->data=data;
(*tail)->next=NULL;
(*tail)->status=NEW;
return;
}
Item QUEUEget(link *head){
Item data=(*head)->data;
Item status
link t=*head;
*head=(*head)->next;
free(t);
return data;
}