Defina la estructura de datos de la cola encadenada y su inicialización, operaciones de puesta en cola, retirada de la cola y otras funciones, ingrese una cadena de cadenas y clasifique los caracteres alfabéticos al retirar la cola.
#includelt;iostreamgt;
#includelt;stringgt;
usando?namespace?std;
struct?ChainNode
{
char?valor;
ChainNode*?next;
ChainNode(char?v){
valor ?=?v;
siguiente?=?NULL;
}
};
clase?ChainQueue
{
público:
ChainQueue(){
cabeza?=?NULL;
tamaño?=?0;
}
void?push(char?value){
if?(head?==?NULL){
tamaño;
head?=?new?ChainNode(valor);
return;
}
ChainNode*?ptr?=?head ;
tamaño ;
mientras?(ptr?=?NULL?amp;amp;?ptr-gt;next?=?NULL)ptr?=?ptr-gt ;siguiente ;
ptr-gt;next?=?new?ChainNode(valor);
}
char?front()const{
return?head-gt;value;
}
void?pop(){
if(size?==?0)return ;
ChainNode*?temp?=?head-gt;siguiente;
eliminar?head;
head?=?temp;
tamaño--;
}
int?getsize(){
return?size;
}
~ChainQueue(){
ChainNode*?cur?=?head;
mientras?(cur?!=?NULL)
{
ChainNode*?temp?=?head-gt;next;
eliminar?cur;
cur?=?temp;
}
}
privado:
ChainNode*?head;
int?size;
}; p>
int?main(){
cadena?str;
cadena?número?=?"";
cadena?letra ?= ?"";
ChainQueue?queue;
cout?lt;lt;?"Ingrese una cadena de letras y números: "?lt;lt;? endl;
cin?gt;gt;?str;
cout?lt;lt;?" La cadena mixta de entrada es: "?lt;lt;?str?
lt;lt;?endl;
for?(int?i?=?0;?i?lt;?str.length();?i )
{ p>
queue.push(str[i]);
}
for?(int?i?=?0;?queue.getsize()?!= ?0;?i )
{
if(queue.front()?gt;=?'0'?amp;amp;?queue.front()?lt; =?'9')
número? =?queue.front();
otro
letra? =?queue.front(); p>
else
p>
queue.pop();
}
cout?lt;lt;?"La cadena numérica es: "?lt;lt;?número?lt; lt;?endl;
cout?lt;lt;?" La cadena de letras es: "?lt;lt;?letra?lt;lt ;?endl;
}