棧,佇列的C語言實現

2022-04-03 04:22:54 字數 1122 閱讀 1498

棧的c語言實現

佇列的c語言實現

棧:後進先出  允許插入和刪除的一端叫棧頂top  不允許的一端叫棧底bottom

主要操作:進棧、出棧、判斷棧滿和棧空

有兩個現成的函式 int push(int s,int x,int *ptop), int pop(int s,int *py,int *ptop)  直接拿過來用就行   要壓入的棧空間 要進棧的數 棧頂指標

佇列:先進先出  允許插入的叫隊尾rear  允許資料離開的叫隊頭front

主要操作:入隊、出隊、判斷隊滿和隊空

有兩個現成的函式  int enqueue(int *q,int x,int *pf,int *pr)    pf:隊頭指標

直接拿過來用就行  int dequeue(int *q,int *py,int *pf,int *pr)  pr:隊尾指標

q:要進入的隊空間  x:要進入隊的數 py:要出隊的數

(a) 線性佇列

(b) 迴圈佇列

隊頭:front

隊尾:rear

隊滿條件:

(rear+1)%max=front

隊空條件:

rear=front

入隊:rear = (rear+1)%max

出隊:front = (front+1)%max

習題答案

1、//進棧演算法

#include "stdio.h"

#define stacksize 100            /*定義stacksize為常數100 */

int push(int s,int x,int *ptop)

else

}int pop(int s,int *py,int *ptop)

else

}int main()}2、

//迴圈佇列中加入乙個元素的演算法:

//設q[max]表示迴圈佇列

#define max 7

#include "stdio.h"

int enqueue(int *q,int x,int *pf,int *pr)

} int dequeue(int *q,int *py,int *pf,int *pr)

}int main()

C語言實現棧和佇列

標頭檔案 stack.h pragma once include include include typedef int stdatatype typedef struct stack stack 初始化棧 void stackinit stack pst 入棧 void stackpush sta...

演算法總結 棧 佇列 c語言實現

還是一道題typedef struct node1 d typedef struct node2 z d d1,d2 z z 初始化佇列d1和d2,此時兩人手中沒有牌 d1.head 0 d1.tail 0 d2.head 0 d2.tail 0 初始化棧z為空,最開始桌面上也沒有牌 z.top 0...

C語言實現,順序佇列,迴圈佇列,和棧!

佇列是一種特殊的 線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元...