棧:一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧又稱為後進先出的線性表。
#pragma once
#include
#include
#include
typedef
int datatype;
typedef
struct stack
stack;
// 棧的實現介面
void stackinit(stack* s);//棧初始化
void stackpush(stack* s, datatype x);//壓棧
void stackpop(stack* s);//出棧
datatype stacktop(stack* s);//棧頂元素
size_t stacksize(stack* s);//棧大小
int stackempty(stack* s);//棧判空
void stackdestory(stack *s);//棧銷毀
#include"stack.h"
void
stackinit(stack* s)//初始化棧
void
stackpush(stack* s, datatype x)//壓棧
s->_array[s->_top++] = x;
}void
stackpop(stack* s)//出棧
}datatype
stacktop(stack* s)//棧頂元素
size_t
stacksize(stack* s)//棧大小
intstackempty(stack* s)//判空
void
stackdestory(stack *s)//棧銷毀
#include"stack.h"
test()
stackdestory(&s);
}int main()
佇列:一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列具有先進先出(fifo)的特性順序佇列。
#pragma once
#include
#include
#include
#include
typedef int datatype;
typedef struct queuenode
queuenode;
typedef struct queue
queue;
void queueinit(queue
* q);//初始化佇列
void queuepush(queue
* q, datatype x);//入佇列
void queuepop(queue
* q);//出佇列
datatype queuefront(queue
* q);//隊頭元素
datatype queueback(queue
* q);//隊尾元素
size_t queuesize(queue
* q);//佇列元素個數
datatype queueempty(queue
* q);//判空
void queuedestory(queue
* q);//銷毀佇列
void queueprint(queue
*q);//列印佇列
#include
"queue.h"
void queueinit(queue
* q)//初始化佇列
void queuepush(queue
* q, datatype x)//入佇列
else
//棧不為空
}void queuepop(queue
* q)//出佇列
datatype queuefront(queue
* q)//隊頭元素
datatype queueback(queue
* q)//隊尾元素
size_t queuesize(queue
* q)//佇列元素個數
return i;
}void queueprint(queue
*q)//列印佇列
}datatype queueempty(queue
* q)//判空
void queuedestory(queue
* q)//銷毀佇列
}
#include"queue.h"
test()
queueempty
(&q);
}int
main
()
佇列的插入 刪除操作
include using namespace std typedef int elemtype typedef struct node qnode,queueptr typedef struct linkqueue void initqueue linkqueue q int isempty li...
棧的建立,插入,刪除
資料結構學到了棧的部分了,呵呵自己寫了下程式,希望來訪的朋友多多提出意見啊!大家共同進步 include include include include define stack init size 10 define stackincrement 10 define ok 0 define err...
棧的插入 刪除問題
棧的插入一直比較懵,經常理不清頭緒。今天做了乙個關於棧的問題,思維還算清晰。趕緊記錄下來。大家應該都了解,棧是一種先入後出的資料結構。在進行插入時top指標決定著具體的操作,根據指標的不同,棧的操作分為兩種情況,具體如下 1 top指標所指向的是真實的棧頂節點 若指標正好指向的是節點本身,在棧中插入...