資料結構 棧與佇列(C語言)

2021-10-18 16:24:47 字數 2388 閱讀 3658

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語言)

棧和佇列是兩種重要的線性結構。從資料結構角度來看,棧和佇列也是線性表,其特殊性在於棧和佇列的基本操作是線性表操作的子集,他們是操作受限制的線性表,因此,可稱為限定性的資料結構。但從資料型別角度看,它們是和線性表大不相同的兩類重要的抽象資料型別。由於它們廣泛應用在各種軟體系統中,因此在物件導向的程式設...