write a program in C++ that implements a sorted linked list using dynamic alloca
ID: 3593286 • Letter: W
Question
write a program in C++ that implements a sorted linked list using dynamic allocated arrays.
DataFile.txt contains the information of poker cards.
1. C: clubs (lowest), D: diamonds, H: hearts, S: spades (highest)
2. 2 (lowest), 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A
3. No Joker cards
4. Any C card is lower than DataFile Content (You can write the file specification into your program.): H4,C8,HJ,C9,D10,D5,DK,D2,S7,DJ,SK,H3,H6,S10,HK,DQ,C2,CJ,C4,CQ,D8,C3,SA,S2,HQ,S8,C6,D9,S3, SQ,C5,S4,H5,SJ,D3,H8,CK,S6,D7,S9,H2,CA,C7,H7,DA,D4,H9,D6,HA,H10,S5,C10
H4, D5, HK, D2
S7, HK, D10
C9,C10
For examples, DJ means J of Diamonds; H7 means 7 of hearts.
Your job
1. Create a list by dynamic allocated array and set the size to 20
2. Read the first 20 cards in the first line of the file, the put them one by one into the list by implementing and using PutItem(). The list must be kept sorted in ascending order. Then output all the cards in the list in one line separating by commas.
3. Then delete the cards indicated in the second line of the file by using DeleteItem Then output all the cards in the list in one line separating by commas.
4. Then put the items in the third line in to the list. Must use PutItem() Then output all the cards in the list in one line separating by commas.
5. Search the current list for the elements in the list. Then output the result as the follows. Yes or No depends on whether the exists in the current list. Must implement and use GetItem()
C9 NO, C10 YES
Explanation / Answer
#include #include #include using namespace std; struct node { int data; node *next; }*p = NULL, *head = NULL, *q = NULL, *np = NULL; int c = 0; void create(int x) { np = new node; np->data = x; np->next = NULL; if (c == 0) { head = np; p = head; p->next = head; c++; } else if (c == 1) { p = head; q = p; if (np->data data) { np->next = p; head = np; p->next = np; } else if (np->data > p->data) { p->next = np; np->next = head; } c++; } else { p = head; q = p; if (np->data data) { np->next = p; head = np; do { p = p->next; } while (p->next != q); p->next=head; } else if (np->data > p->data) { while (p->next !=head && q->data data) { q = p; p = p->next; if (p->next == head && (p->data data)) { p->next = np; np->next = head; } else if (np->data data) { q->next = np; np->next = p; break; } } } } } void traverse(int i) { node *t = head; int c = 0; while (cRelated Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.