Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //QUEUE//
- #include <iostream>
- #include "ctime"
- using namespace std;
- struct dl
- {
- dl* prev;
- dl* next;
- int data;
- };
- dl* pop(dl* ft);
- void push(dl** ft, dl** end, int n);
- bool empty(dl* ft);
- void dl_cout(dl* ft);
- void dl_delete(dl** ft);
- int main()
- {
- srand(time(0));
- dl* ft = NULL;
- dl* end = ft;
- int i, n;
- for (i = 0; i < 10; i++)
- {
- n = rand() % 100;
- push(&ft, &end, n);
- }
- dl_cout(ft);
- ft = pop(ft);
- cout << "Empty? " << std::boolalpha << empty(ft) << endl;
- dl_cout(ft);
- dl_delete(&ft);
- cout << "Empty? " << std::boolalpha << empty(ft) << endl;
- }
- dl* pop(dl* ft)
- {
- dl* ptr = ft;
- if (ft == NULL)
- return NULL;
- else if (ft->next == NULL)
- {
- delete ft;
- return NULL;
- }
- ptr = ft->next;
- delete ft;
- ft = ptr;
- return ft;
- }
- void push(dl** ft, dl** end, int n)
- {
- dl* ptr = new dl;
- ptr->data = n;
- ptr->next = *ft;
- if (*end == NULL)
- * end = ptr;
- *ft = ptr;
- }
- bool empty(dl* ft) { return ft == NULL; }
- void dl_cout(dl* ft)
- {
- while (ft != NULL)
- {
- cout << ft->data << " ";
- ft = ft->next;
- }
- cout << endl;
- }
- void dl_delete(dl** ft)
- {
- while (!empty(*ft))
- * ft = pop(*ft);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement