24 佇列的順序儲存

2022-07-13 13:36:10 字數 2651 閱讀 7814

main.c

#define _crt_secure_no_warning#include

#include

#include

#include

"seqqueue.h

"typedef

struct

person person;

intmain() ;

person p2 = ;

person p3 = ;

person p4 = ;

person p5 = ;

//資料入佇列

push_seqqueue(queue, &p1);

push_seqqueue(queue, &p2);

push_seqqueue(queue, &p3);

push_seqqueue(queue, &p4);

push_seqqueue(queue, &p5);

//輸出隊尾元素

person* backperson = (person*)back_seqqueue(queue);

printf(

"隊尾元素:name:%s age:%d\n

", backperson->name, backperson->age);

//輸出

while (size_seqqueue(queue) > 0

)

//銷毀佇列

free_seqqueue(queue);

printf("\n

");system(

"pause");

return0;

}

seqqueue.h

#ifndef seqqueue_h

#define seqqueue_h#include

#include

#include

#define max_size 1024

//順序佇列結構體

typedef struct

seqqueue seqqueue;

//初始化

seqqueue*init_seqqueue();

//入隊

void push_seqqueue(seqqueue* queue, void*data);

//返回隊頭元素

void* front_seqqueue(seqqueue*queue);

//出隊

void pop_seqqueue(seqqueue*queue);

//返回隊尾元素

void* back_seqqueue(seqqueue*queue);

//返回大小

int size_seqqueue(seqqueue*queue);

//清空佇列

void clear_seqqueue(seqqueue*queue);

//銷毀

void free_seqqueue(seqqueue*queue);

#endif

seqqueue.c

#include"

seqqueue.h"//

初始化seqqueue*init_seqqueue()

queue->size = 0

;

return

queue;}//

入隊void push_seqqueue(seqqueue* queue, void*data)

if (data ==null)

if (queue->size ==max_size)

queue->data[queue->size] =data;

queue->size++;}//

返回隊頭元素

void* front_seqqueue(seqqueue*queue)

if (queue->size == 0

)

return queue->data[0];}

//出隊

void pop_seqqueue(seqqueue*queue)

if (queue->size == 0

)

for (int i = 0; i < queue->size - 1; i++)

queue->size--;}//

返回隊尾元素

void* back_seqqueue(seqqueue*queue)

if (queue->size == 0

)

return queue->data[queue->size - 1];}

//返回大小

int size_seqqueue(seqqueue*queue)

return queue->size;}//

清空佇列

void clear_seqqueue(seqqueue*queue)

queue->size = 0;}

//銷毀

void free_seqqueue(seqqueue*queue)

free

(queue);

}

vs2015執行結果:

7 佇列 順序儲存

佇列是一種先進先出的線性表,它只能從隊尾插入資料,從隊首獲取資料。使用動態陣列來儲存佇列,入隊即是尾插,出隊即是頭刪,獲取隊頭即是陣列的第乙個元素。需要實現的介面 初始化 入隊 出隊 獲取隊頭 獲取隊尾 佇列大小 銷毀佇列myqueue.c include myqueue.h include myd...

佇列(二)佇列的鍊錶儲存

include define false 0 define ok 1 定義佇列每個節點的結構 typedef struct node node,qnode 相當於typedef struct node qnode 定義整個佇列結構 typedef struct squeue squeue 建立乙個空...

03 佇列操作

時間限制 100ms 記憶體限制 100kb 描述假設以帶頭節點的迴圈鍊錶表示佇列,並且只設乙個指標指向隊尾元素節點 不設頭指標 節點元素這裡設為整型,編寫佇列的初始化 入隊和出隊演算法。其中入隊元素個數n及其節點資料,和出隊元素個數m都是從鍵盤輸入 預設n m都不小於0 然後輸出出隊元素,出隊不合...