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 函式狀態碼...