棧的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 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元...