寫出先入先出佇列的結構體queue定義,並實現以下函式:(15分)
1,queue *create(int size):建立乙個能放size個int型別的佇列,返回佇列的指標。
2,int put(queue *queue, int value):將value入隊,返回0表示成功,-1表示出錯。
3,int get(queue *queue, int *pvalue):將資料出隊並存入pvalue,返回0表示成功,-1表示出錯。
typedef struct node_t
nodelist;
typedef struct queue_t
queue;
queue *create(int size)
memset(queue,0,sizeof(queue));
node = (nodelist *)malloc(sizeof(nodelist));
if(null == node)
memset(node,0,sizeof(nodelist));
queue->head = node;
queue->end = node;
for(i=1;idata = i;
queue->end->next = node;
queue->end = node;
}queue->qsize = size;
return queue;
}
int put(queue *queue, int value)
memset(node,0,sizeof(nodelist));
node->data = value;
queue->qsize++;
if(null == queue->head)
else
return 0;
}
int get(queue *queue, int *pvalue)
*pvalue = queue->head->data;
node = queue->head->next;
free(queue->head);
queue->head = node;
queue->qsize--;
return 0;
}
測試:
#include#include#includetypedef struct node_t
nodelist;
typedef struct queue_t
queue;
queue *create(int size)
memset(queue,0,sizeof(queue));
node = (nodelist *)malloc(sizeof(nodelist));
if(null == node)
memset(node,0,sizeof(nodelist));
queue->head = node;
queue->end = node;
for(i=1;idata = i;
queue->end->next = node;
queue->end = node;
}queue->qsize = size;
return queue;
}int put(queue *queue, int value)
memset(node,0,sizeof(nodelist));
node->data = value;
queue->qsize++;
if(null == queue->head)
else
return 0;
}int get(queue *queue, int *pvalue)
*pvalue = queue->head->data;
node = queue->head->next;
free(queue->head);
queue->head = node;
queue->qsize--;
return 0;
}int getqueuesize(queue *queue)
int test_queue(void)
printf("size : %d \n",getqueuesize(queue)); // 0
put(queue,10);
printf("size : %d \n",getqueuesize(queue)); //1
put(queue,11);
printf("size : %d \n",getqueuesize(queue)); //2
get(queue,&data);
printf("data : %d \n",data); //10
get(queue,&data);
printf("data : %d \n",data); //11
printf("size : %d \n",getqueuesize(queue)); //0
}int main(void)
資料結構 佇列,陣列實現 鍊錶實現和迴圈佇列
一 什麼是佇列 一種先進先出的資料結構 fifo結構 新元素新增在隊尾 push 刪除操作刪掉第乙個元素 pop 二 佇列的實現方式 佇列的實現方式陣列實現 鍊錶實現 三 常見的佇列 常用佇列迴圈佇列 阻塞佇列 併發佇列 四 怎麼實現乙個無bug的佇列思考 思考1 head 頭元素 和tail 尾元...
鍊錶實現佇列 資料結構作業
仿照作業code1的功能,將課本上鍊表的實現佇列能完整實現 需要通過main函式呼叫並能進行友好的人機互動輸入 作業code1 鍊錶實現佇列的 include define ok 1 define error 0 using namespace std typedef int qelemtype t...
C資料結構 佇列 鍊錶實現
佇列 queue 是具有兩個特殊屬性的鍊錶。第一,新項只能新增到鍊錶的末尾 第二,只能從鍊錶的開頭移除項。可以把佇列想象成排隊買票的人,你從隊尾加入佇列,買完票後從隊首離開。佇列是一種 先進先出 first in first out,fifo 的資料形式。queue.h ifndef queue h...