วิธีสร้างเลขฐานสอง (Binary Numbers) จาก 1 ถึง n โดยใช้ Queue
อัลกอริทึม
- Enqueue "1"
- วน n ครั้ง: Dequeue → print → Enqueue ตัวนั้น+"0" และ ตัวนั้น+"1"
โค้ดตัวอย่าง (C++)
#include <iostream>
#include <queue>
using namespace std;
void genBinary(int n) {
queue<string> q;
q.push("1");
while (n--) {
string s = q.front(); q.pop();
cout << s << " ";
q.push(s + "0");
q.push(s + "1");
}
}
int main() {
genBinary(15);
return 0;
}
ผลลัพธ์
1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111