佇列元素逆置演算法

2021-07-30 16:50:37 字數 1739 閱讀 6976

1.題目:使用乙個棧、乙個佇列,實現佇列中元素逆置的演算法 

2.利用佇列先進先出,棧先進後出的特性,實現佇列元素的逆置

3.原始碼

/**

1.題目:使用乙個棧、乙個佇列,實現佇列中元素逆置的演算法

**/

#include #define maxsize 1000

typedef structqueue;

typedef structstack;

//初始化棧操作

void initstack(stack &stack)

//棧元素入棧操作

void pushstack(stack &stack,int data)

else

printf("棧已滿!\n");

} //棧元素出棧操作--->出棧的肯定是棧頂元素--->所以不需要引數

int popstack(stack &stack)

else return -1;

} /**-------------------------------佇列操作---------------------------------------*/

//初始化佇列

void initqueue(queue &queue)

//入隊操作

void inqueue(queue &queue,int data)

else return;

} //出隊操作-->在佇列的頭部進行操作

int dequeue(queue &queue)

else return -1;}

int main()

//將佇列中的資料出隊、進棧

for(i = 0;i < 5;i++)

//將棧中元素出棧,進隊--->需要將原佇列置空

for(i = 0 ;i< 5;i++)

for(i = 0;i< 5;i++)

printf("\n");

}

4.總結

(1)熟知佇列的基本操作名稱,並且能夠寫出基本流程:

//初始化佇列 

void initqueue(queue &queue)

//入隊操作 

void inqueue(queue &queue,int data)

else return;

}

//出隊操作-->在佇列的頭部進行操作 

int dequeue(queue &queue)

else return -1;

}

需要注意的是:在進隊或是出隊的時候,需要使用取餘,避免「假上溢位」

5.熟知棧操作

//初始化棧操作 

void initstack(stack &stack)

//入棧操作-->引數入棧 

void pushstack(stack &stack,int data)

else

printf("棧已滿!\n");

}

//出棧操作--->出棧的肯定是棧頂元素--->所以不需要引數 

int popstack(stack &stack)

else return -1;

}

用佇列將棧中元素逆置

程式設計實現利用佇列將棧中元素逆置的演算法。void inverse stack s,queue q while isempty q include include define true 1 define false 0 define n 100 typedef int bool typedef ...

元素逆置 (鄧 2 3)

將一順序表a中的元素逆置。例如原來順序表a中的元素是100,90,80,70,60,50,40,逆置後為40,50,60,70,80,90,100。將順序表a中的元素輸入陣列a,若陣列a中元素個數為n,將下標為0,1,2,n 1 2的元素依次與下標為n,n 1,n 1 2的元素交換,輸出陣列a的元素...

陣列元素原地逆置

最簡單的利用陣列實現 includeusing namespace std const int arraysize 30 int main for int i 0 i 用結構體實現 include includeusing namespace std define listsize 30 函式狀態碼...