




Preview text:
ARRAY } Position temp = p->next; printList(List *pL) { p->next = temp->next; (*pL)->next == NULL) {
Position locate(ElementType x, List *pL){ free(temp); printf("empty"); Position p = *pL; } return; while (p->next != NULL) {
if (p->next->element == x){break;} void printList(List *pL) { p = p->next; if ((*pL)->next == NULL) { sition p = (*pL)->next; } printf("empty"); ile (p != NULL) { return p; return; printf("%.2f", p->element); } } f (p->next != NULL) { Position p = (*pL)->next; printf(", ");
void insert(ElementType x, Position p, List while (p != NULL) { } *pL) {
printf("%.2f", p->element); p = p->next; Position temp = p->next; if (p->next != NULL) {
p->next = (Position)malloc(sizeof(Cell)); printf(", "); p->next->element = x; } p->next->next = temp; p = p->next;
on previous(Position p, List *pL) { } } sition q = *pL; } ile (q->next != p) { Position makeNull (List *pL) { q = q->next;
*pL = (Position)malloc(sizeof(Cell)); Position first(List *pL) { (*pL)->next = NULL; return *pL; urn q; (*pL)->element = 13350; } return *pL; }
Position next(Position p, List *pL){ on first(List *pL) { return p->next; n *pL; Position end (List *pL) { } Position p = *pL;
while (p->next != NULL){p=p->next;}
void insert(ElementType x, Position p, List
entType retrieve(Position p, List *pL) return p; *pL) { } Position temp = p->next; n p->next->element;
Position next (Position p, List *pL){
p->next = (Position)malloc(sizeof(Cell)); return p->next; p->next->element = x; } p->next->next = temp; delete(Position p, List *pL){ } on temp = p->next; LINKED LIST ext = temp->next;
void delete(Position p, List *pL){ Position end (List *pL) { emp); on p = *pL;
if(pS->top == 0){printf ("Error: stack is int empty (Queue *pQ) {
(p->next != NULL){p=p->next;} full\n");} return pQ->front == -1; n p; else{ } pS->top--; pS->elements[pS->top]=x; ElementType front (Queue *pQ){
on previous(Position p, List *pL) { } if (pQ->front == -1) { sition q = *pL; } ElementType dummy=99.99; ile (q->next != p) { return dummy; q = q->next; void makeNull (Stack *pS) { } pS->top = MAXLENGTH;
return pQ->elements[pQ->front]; urn q; } } ElementType top (Stack *pS) { void dequeue (Queue *pQ) {
on locate(ElementType x, List *pL){ if (pS->top == MAXLENGTH){ if (pQ->front == -1) { on p = *pL; ElementType dummy;
printf ("Error: Queue is empty, (p->next != NULL) { return dummy=-91.08; cannot dequeue.\n");
>next->element == x){break;} } } ->next;
return pS->elements[pS->top]; }
if (pQ->front == pQ->rear){ n p; pQ->front = -1; void pop (Stack *pS) { pQ->rear = -1;;
if (pS->top == MAXLENGTH){printf return; on makeNull (List *pL) { ("Error: stack is empty.\n");} }
= (Position)malloc(sizeof(Cell)); else{pS->top++;}
pQ->front = (pQ->front + ->next = NULL; } 1)%MAXLENGTH; ->element = 15869; } n *pL; int empty (Stack *pS) {
void enqueue (ElementType x, Queue
return pS->top == MAXLENGTH; *pQ) {
entType retrieve(Position p, List *pL) }
if ((pQ->rear+1)%MAXLENGTH == pQ- >front){ n p->next->element; QUEUE ARRAY
printf("Error: Queue is full, cannot void makeNull (Queue *pQ){ enqueue.\n"); pQ->front = -1; } CK pQ->rear = -1; else{
push (ElementType x, Stack *pS) { } pQ->rear = (pQ- >rear+1)%MAXLENGTH;
->elements[pQ->rear] = x; pL->last++;
pQ->front == -1) pQ->front = 0;
void enqueue (ElementType x, Queue } *pQ) {
pQ->rear->next = malloc(sizeof(Cell));
BigInteger mult7(BigInteger *pL) {
pQ->rear->next->element = x; BigInteger temp; UE POINTER
pQ->rear->next->next = NULL; makeNull(&temp); makeNull (Queue *pQ) {
pQ->rear = pQ->rear->next; int i;
on header = malloc(sizeof(Cell)); } int remainder = 0; er->next = NULL; ////////////////////// int c = 0; front = header; #include for (i = 0; ilast+1; i++) { rear = header; #include remainder = c/10; #include c = 7*(pL->elements[i]) + #define MAXLENGTH 100 remainder; mpty (Queue *pQ) { typedef int ElementType; append(c%10, &temp);
n (pQ->front == pQ->rear); typedef int Position; } typedef struct { return temp;
ElementType elements[MAXLENGTH]; } entType front (Queue *pQ) { Position last; } BigInteger;
void printBigInteger( BigInteger *pL) { Q->front == pQ->rear) { int i; ElementType dummy=1; for (i=0; ilast; i++) return dummy;
//makeNull(pL): make pL be empty printf("%d",pL-
Position makeNull(BigInteger *pL) { >elements[i]);
n pQ->front->next->element; pL->last = 0; } return pL->last + 1; } int main() { dequeue (Queue *pQ) { BigInteger a; Q->front == pQ->rear){
//end(pL): returns the position following makeNull(&a);
ntf ("Error: Queue is empty, cannot the last element char s[] = eue.\n"); Position end(BigInteger *pL) { "7588588969786786995659779"; return pL->last + 1; int i; }
for ( i = strlen(s) - 1; i >= 0; i--) sition temp = pQ->front; append(s[i] - '0', &a); ->front = temp->next;
//append(x, pL): insert x at the end of pL e (temp);
void append(ElementType x, BigInteger BigInteger b = mult7(&a); *pL) {
printf("a = "); printBigInteger(&a);
pL->elements[pL->last] = x;
printf("a * 7 = "); printBigInteger(&b); return 0;