Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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 (c