2.迴圈佇列的實現
總結本文就介紹了資料結構中兩大基礎儲存結構,棧與佇列的基礎內容。
棧(stack)又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。
佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。
棧:後進先出(lifo-last in first out):最後插入的元素最先出來。
佇列:先進先出(fifo-first in first out):最先插入的元素最先出來。
#include
#include
#define stack_int_size 5
#define stackincrement 5
typedef
struct
sqstack;
int
initstack
(sqstack &s)
s.top = s.base ;
s.stacksize=stack_int_size;
return1;
}
int
push
(sqstack &s,
int e)
s.top = s.base +s.stacksize ;
//修改當前棧頂指標
s.stacksize =s.stacksize +stackincrement;
//修改當前棧的容量
}*s.top ++
=e;return0;
}
int
pop(sqstack &s,
int&e)
e=*(
--s.top)
;return1;
}
int
gettop
(sqstack s,
int&e)
e=*(s.top-1)
;return1;
}int
stackempty
(sqstack s)
else
}
#include
#include
#define maxqsize 100
typedef
struct
sqqueue;
int
initqueue
(sqqueue &q)
q.front = q.rear =0;
return1;
}
int
enqueue
(sqqueue &q,
int e)
q.base[q.rear]
= e;
q.rear =
(q.rear+1)
% maxqsize;
printf
("插入的隊尾元素:%d\n"
,e);
return1;
}
int
dequeue
(sqqueue &q,
int&e)
e=q.base[q.front]
; q.front=
(q.front +1)
% maxqsize;
printf
("刪除的隊頭元素:%d\n"
,e);
return1;
}
int
queuelength
(sqqueue q)
void
show()
intmain()
printf
("\n");
show()
;scanf
("%d"
,&n);}
return0;
}
以上就是今天要講的內容,本文僅僅簡單介紹了棧與佇列的基礎結構以及基礎功能的相應實現。 希望對你有所幫助 (C語言)資料結構 佇列 棧
12 佇列 queue 入隊 put 出對get 1 2 file queue linkedlist.c 3 4 佇列 queue 5 入隊 put 放在鍊錶尾部,並更新指向鍊錶尾部的指標tail 6 出隊 get 返回並刪除鍊錶頭部節點,並更新指向鍊錶頭部的指標head 7 8 9 include...
C語言資料結構 棧 佇列
ifndef zydl h define zydl h include head.h define stack int size 100 define stackincrement 10 define duqueue max size 10 define maxqsize 100 typedef i...
資料結構 棧和佇列(c語言)
棧和佇列是兩種重要的線性結構。從資料結構角度來看,棧和佇列也是線性表,其特殊性在於棧和佇列的基本操作是線性表操作的子集,他們是操作受限制的線性表,因此,可稱為限定性的資料結構。但從資料型別角度看,它們是和線性表大不相同的兩類重要的抽象資料型別。由於它們廣泛應用在各種軟體系統中,因此在物件導向的程式設...