यहां हम 1 से n तक बाइनरी संख्याएं उत्पन्न करने की एक दिलचस्प विधि देखेंगे। यहां हम कतार का उपयोग कर रहे हैं। प्रारंभ में कतार पहली बाइनरी संख्या '1' रखेगी। अब बार-बार कतार से तत्व हटाएं, और इसे प्रिंट करें, और फ्रंट आइटम के अंत में 0 जोड़ें, और फ्रंट आइटम के अंत में 1 जोड़ें, और उन्हें कतार में डालें। आइए अवधारणा प्राप्त करने के लिए एल्गोरिदम देखें।
एल्गोरिदम
genBinaryNumbers(n)
शुरुआत
खाली कतार परिभाषित करें
कतार में 1 डालें
जबकि n 0 नहीं है, करें
कतार से तत्व हटाएं और इसे s1 में स्टोर करें
s1 प्रिंट करें
s2 := s1
s1 में अंत में 0 जोड़कर कतार में डालें
s1 में अंत में 1 जोड़कर कतार में डालें
n को 1 से घटाएं
पूर्ण
समाप्त
उदाहरण
#include <iostream>
#include <queue>
using namespace std;
void genBinaryNumbers(int n) {
queue<string> q;
q.push("1");
while (n != 0) {
string s1 = q.front();
q.pop();
cout << s1 << " ";
q.push(s1 + "0");
q.push(s1 + "1");
n--;
}
}
int main() {
int n = 15;
genBinaryNumbers(n);
return 0;
}
आउटपुट
1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111