대기 열 데이터 구조 작업 (2)
/** : :1.push 2.pop 3.traverse 4.free 5.rebuild -1 2 , pop :1.push 2.pop 3.traverse 4.free 5.rebuild -1 1 input (type) a,a==-1 to end 23 input (type) a,a==-1 to end 345 input (type) a,a==-1 to end 56 input (type) a,a==-1 to end 34 input (type) a,a==-1 to end 45 input (type) a,a==-1 to end -1 :1.push 2.pop 3.traverse 4.free 5.rebuild -1 2 pop(23) :1.push 2.pop 3.traverse 4.free 5.rebuild -1 2 pop(345) :1.push 2.pop 3.traverse 4.free 5.rebuild -1 3 traverse: 56 34 45 :1.push 2.pop 3.traverse 4.free 5.rebuild -1 4 free: :1.push 2.pop 3.traverse 4.free 5.rebuild -1 5 rebuild: :1.push 2.pop 3.traverse 4.free 5.rebuild -1 1 input (type) a,a==-1 to end 23 input (type) a,a==-1 to end -1 :1.push 2.pop 3.traverse 4.free 5.rebuild -1 -1 */
#include<iostream>
#include<cstdlib>
using namespace std;
typedef int type;
struct Queue
{
type data;
Queue *next;
};
Queue *head; //
Queue *cur; //
void Init()
{
head=(Queue *)malloc(sizeof(Queue));
cur=head;
cur->next=NULL;
}
void push(type a)
{
cout<<"input (type) a,a==-1 to end"<<endl;
Queue *add; //
add=(Queue *)malloc(sizeof(Queue));
add->data=a;
cur->next=add;
cur=add;
cur->next=NULL;
}
void pop()
{
if(head->next!=NULL)
{
cout<<"pop("<<head->next->data<<")"<<endl;
head->next=head->next->next;
}
else
cout<<" , pop"<<endl;
}
void traverse()
{
cout<<"traverse:"<<endl;
Queue *p=head;
while(p->next!=NULL)
{
p=p->next;
cout<<p->data<<" "<<endl;
}
}
void free_queue()
{
Queue *p;
while(head!=NULL)
{
p=head;
head=head->next;
free(p);
}
}
int main()
{
cout<<" :1.push 2.pop 3.traverse 4.free 5.rebuild -1 "<<endl;
int a;
type b;
Init();
while(cin>>a&&a!=-1)
{
switch(a)
{
case 1:{cout<<"input (type) a,a==-1 to end"<<endl;while(cin>>b&&b!=-1){push(b);};break;};
case 2:{pop();break;};
case 3:{traverse();break;};
case 4:{cout<<"free:"<<endl;free_queue();break;};
case 5:{cout<<"rebuild:"<<endl;Init();break;}
default:cout<<"please input 1 or 2 or 3 or -1"<<endl;
}
cout<<" :1.push 2.pop 3.traverse 4.free 5.rebuild -1 "<<endl;
}
free_queue();
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.