Professional Documents
Culture Documents
}
void enqueue(Queue* q, int x) {
if (q->rear == q->size - 1)cout << "queue is full"<<"\n";
else {
q->rear++;
q->Q[q->rear] = x;
}
}
int dequeue(Queue* q) {
int x = -1;
if (q->front == q->rear)cout << "queue is empty" << "\n";
else {
q->front++;
x = q->Q[q->front];
}
return x;
}
void Display(struct Queue q) {
for (int i = q.front+1; i <= q.rear; i++)cout << q.Q[i] << " ";
cout << "\n";
}
int main()
{
struct Queue q;
create(&q, 5);
enqueue(&q, 10);
enqueue(&q, 20);
enqueue(&q, 30);
Display(q);
cout << dequeue(&q);
return 0;
}
1.1.1.Circular Queue
#include <iostream>
using namespace std;
struct Queue {
int front;
int rear;
int size;
int* Q;
};
void create(struct Queue* q, int size) {
q->size = size;
q->rear = q->front = 0;
q->Q = new int[size];
}
void enqueue(struct Queue* q, int x) {
if ((q->rear + 1) % q->size == q->front)cout << "queue full\n";
else {
q->rear = (q->rear + 1) % q->size;
q->Q[q->rear] = x;
}
}
int dequeue(struct Queue* q) {
int x = -1;
if (q->front == q->rear)cout << "queue empty\n";
else {
q->front = (q->front + 1) % q->size;
x = q->Q[q->front];
}
return x;
}
void Display(struct Queue q) {
int i = q.front + 1;
do {
cout << q.Q[i]<<" ";
i = (i + 1) % q.size;
} while (i != (q.rear + 1) % q.size);
cout << "\n";
}
int main()
{
struct Queue q;
create(&q, 10);
enqueue(&q, 10);
enqueue(&q, 20);
enqueue(&q, 30);
Display(q);
cout << dequeue(&q);
}
#include <iostream>
using namespace std;
class Queue {
private:
int size;
int front;
int rear;
int* Q;
public:
Queue() { front = rear = -1; size = 10; Q = new int[size]; }
Queue(int size) { front = rear = -1; this->size = size; Q = new int[this->size]; }
void enqueue(int x);
int dequeue();
void Display();
};
void Queue::enqueue(int x)
{
if (rear == size - 1)cout << "Queue Full\n";
else {
rear++;
Q[rear] = x;
}
}
int Queue::dequeue() {
int x = -1;
if (rear = front)cout << "Queue empty\n";
else {
x = Q[front + 1];
front++;
}
return x;
}
void Queue::Display() {
for (int i = front + 1; i <= rear; i++)cout << Q[i] << " ";
cout << "\n";
}
int main()
{
Queue q(5);
q.enqueue(10);
q.enqueue(20);
q.enqueue(30);
q.Display();
cout << q.dequeue();
return 0;
}
#include <iostream>
using namespace std;
struct Node {
int data;
struct Node* next;
}*front = NULL,*rear = NULL;
void enqueue(int x) {
struct Node* t=new Node;
if (t == NULL)cout << "Queue is full\n";
else {
t->data = x;
t->next = NULL;
if (front == NULL)
front = rear = t;
else {
rear->next=t ;
rear = t;
}
}
}
int dequeue() {
int x = -1;
struct Node* t;
if (rear == front)cout << "empty queue\n";
else {
x = front->data;
t = front;
front = front->next;
free(t);
}
return x;
}
void Display() {
struct Node* p = front;
while (p) {
cout << p->data<<" ";
p = p->next;
}
cout << "\n";
}
int main()
{
enqueue(10);
enqueue(20);
enqueue(30);
enqueue(40);
enqueue(50);
Display();
cout << dequeue();
return 0;
}
}
}
void Displaystack() {
struct Node* p = top;
while (p) {
cout << p->data << " ";
p = p->next;
}
cout << "\n";
}
int verificareparitate() {
struct Node* t;
if (top == NULL)cout << "stack empty" << "\n";
else {
t = top;
if (t->data % 2 == 0)return 1;
}
return 0;
}
int pop() {
struct Node* t;
int x = -1;
if (top == NULL)cout << "stack empty" << "\n";
else {
t = top;
top = top->next;
x = t->data;
free(t);
}
return x;
}
void enqueue(int x) {
struct Node* t = new Node;
if (t == NULL)cout << "Queue is full\n";
else {
t->data = x;
t->next = NULL;
if (front == NULL)
front = rear = t;
else {
rear->next = t;
rear = t;
}
}
}
int dequeue() {
int x = -1;
struct Node* t;
if (rear == front)cout << "empty queue\n";
else {
x = front->data;
t = front;
front = front->next;
free(t);
}
return x;
}
void Displayqueue() {
struct Node* p = front;
while (p) {
cout << p->data << " ";
p = p->next;
}
cout << "\n";
}
int main()
{
push(10); push(23); push(4); push(13); push(14); push(10);
push(102); push(56); push(12); push(153); push(102);
Displaystack();
while (!empty()) {
if (verificareparitate())enqueue(pop());
else pop();
}
Displayqueue();
return 0;
}
# include <iostream>
using namespace std;
struct coada{
int inf;
coada *leg;
};
coada *p, *prim, *ultim;
int x, i, n;
LISTE
# include <iostream.h>
struct lista
{
int info;
lista *leg;
};
lista *p, *prim, *ultim;
int n;
void creare(lista *&prim, lista *&ultim)
{
int i,inf;
cout<<"Dati numarul de elemente al listei n = "; cin>>n;
cout<<"Dati prima informatie "; cin>>inf;
prim=new lista;
prim->info=inf;
prim->leg=NULL;
ultim=prim;
for(i=2;i<=n;i++)
{
cout<<"Dati informatia "<<i<<" = ";
cin>>inf;
p=new lista;
p->info=inf;
p->leg=NULL;
ultim->leg=p;
ultim=p;
}
}
void afisare(lista *prim)
{
p=prim;
while(p!=NULL)
{
cout<<p->info<<" ";
p=p->leg;
}
}
int verif_prim(int x)
{
int q=1;
for(int i=2;i<=x/2;i++)
if(x%i==0) q=0;
return q;
}
int nr_prime(lista *prim)
{
int nr=0;
p=prim;
while(p!=NULL)
{
if(verif_prim(p->info)==1) nr++;
p=p->leg;
}
return nr;
}
int main(void)
{
creare(prim,ultim);
afisare(prim);
cout<<endl<<"numarul de numere prime = "<<nr_prime(prim)<<endl;
#include <iostream>
using namespace std;
TNOD *L,*L1,*L2;
TNOD* creare()
{
TNOD *prim,*ultim,*nou;
int i,n;
cout<<"noduri lista: ";
cin>>n;
prim=new TNOD;
cout<<"info = ";
cin>>prim->info;
prim->urm=NULL;
ultim=prim;
for(i=2;i<=n;i++)
{
nou=new TNOD;
cout<<"info = ";
cin>>nou->info;
nou->urm=NULL;
ultim->urm=nou;
ultim=nou;}
return prim;
}
return 0;
}
9. Sa se formeze o lista care contine elementele unui vector.
#include <iostream>
struct Node
{
int data;
struct Node* next;
}*first=NULL;
void create(int A[], int n)
{
int i;
struct Node* t,*last;
first = new Node;
first->data = A[0];
first->next = NULL;
last = first;
Display(first);
return 0;
}