Elton John's final concert and his forthcoming farewell tour, marking the end of his touring career. Published on July 8, 2023
focusing on the legendary musician's decision to retire after an illustrious career that has spanned several decades.
STACK.C
#include <assert.h>
#include<stddef.h>
#include "stack.h"
Stack stack_new(uint32_t size)
{
size = (size > 0 && size < MAX_DEPTH) ? size : MAX_DEPTH;
Stack s = {size, -1 , {0}};
return s;
}
uint32_t stack_full(const Stack *stk)
{
assert(stk != NULL);
return ((stk -> top+1) == stk->size);
}
uint32_t stack_empty(const Stack *stk)
{
assert(stk != NULL);
return stk->top == -1;
}
Stack* stack_push(Stack *stk, float data, StackResult *result)
{
assert(stk != NULL);
if (stk->top+1 < stk->size)
{
stk->data[++stk->top] = data;
result->data = data;
result->status = STACK_OK;
}
else
{
result->data = data;
result->status = STACK_FULL;
}
return stk;
}
Stack* stack_pop(Stack *stk, StackResult *result)
{
assert(stk != NULL);
if(stk->top > -1)
{
result->data = stk->data[stk->top];
result->status = STACK_OK;
--stk->top;
}
else
{
result->status = STACK_EMPTY;
}
return stk;
}
Stack* stack_peek(Stack *stk, StackResult *result)
{
assert(stk != NULL);
if (stk->top > -1)
{
result->data = stk->data[stk->top];
result->status = STACK_OK;
}
else
{
result->status = STACK_EMPTY;
}
return stk;
}
QMAIN.C
#include<assert.h>
#include "queue.h"
void test_queue()
{
Queue q_instance = queue_new(1);
Queue *q = &q_instance;
QueueResult result;
assert(queue_empty(q));
assert(!queue_full(q));
queue_remove(q, &result);
assert(result.status == QUEUE_EMPTY);
queue_add(q, 44, &result);
assert(result.status == QUEUE_OK);
assert(queue_full(q));
queue_remove(q, &result);
assert(result.data == 44);
queue_remove(q, &result);
assert(result.data == 44);
assert(result.status == QUEUE_EMPTY);
queue_add(q, 10, &result);
queue_add(q, 20, &result);
assert(result.status == QUEUE_FULL);
//queue_add(q, 30, &result);
}
void test_circular_queue()
{
Queue q_instance = queue_new(3);
Queue *q = &q_instance;
QueueResult result;
assert(queue_empty(q));
assert(!queue_full(q));
queue_add(q, 10, &result);
assert(result.status == QUEUE_OK);
queue_add(q, 20, &result);
assert(result.status == QUEUE_OK);
queue_add(q, 30, &result);
assert(result.status == QUEUE_OK);
assert(queue_full(q));
queue_remove(q , &result);
assert(result.data == 10);
assert(result.status == QUEUE_OK);
queue_add(q, 40, &result);
assert(result.status == QUEUE_OK);
queue_remove(q, &result);
assert(result.data == 20);
assert(result.status == QUEUE_OK);
queue_remove(q, &result);
assert(result.data == 30);
assert(result.status == QUEUE_OK);
queue_remove(q, &result);
assert(result.data == 40);
assert(result.status == QUEUE_OK);
assert(queue_empty(q));
/*queue_remove(q, &result);
assert(result.data == 20);
assert(result.status == QUEUE_OK);*/
}
int main()
{
test_queue();
test_circular_queue();
return 0;
}
QUEUE.H
#ifndef _INCLUDED_QUEUE_
#define _INCLUDED_QUEUE_
#include <stdint.h>
#define QUEUE_OK 1
#define QUEUE_FULL 2
#define QUEUE_EMPTY 4
#define MAX_QUEUE_LEN 32
struct _queue_
{
uint32_t size;
uint32_t count;
uint32_t head;
uint32_t tail;
int32_t q[MAX_QUEUE_LEN];
};
typedef struct _queue_ Queue;
struct _queue_result_
{
int32_t data;
uint32_t status;
};
typedef struct _queue_result_ QueueResult;
Queue queue_new(uint32_t size);
Queue* queue_add(Queue *q, int32_t data, QueueResult *result);
Queue* queue_remove(Queue *q, QueueResult *result);
uint32_t queue_full(Queue *q);
uint32_t queue_empty(Queue *q);
#endif
Q.C
#include<assert.h>
#include<stddef.h>
#include "queue.h"
Queue queue_new(uint32_t size)
{
size = (size > 0 && size < MAX_QUEUE_LEN) ? size : MAX_QUEUE_LEN;
Queue q = {size, 0, 0, 0, {0}};
return q;
}
Queue* queue_add(Queue *q, int32_t data, QueueResult *result)
{
assert(q != NULL && q->count <= q->size);
if (q->count < q->size)
{
q->q[q->tail] = data;
q->tail = (q->tail+1) % q->size;
++q->count;
result->status = QUEUE_OK;
}
else
{
result->status = QUEUE_FULL;
}
assert(result->status == QUEUE_OK || q->count == q->size);
return q;
}
Queue* queue_remove(Queue *q, QueueResult *result)
{
assert(q != NULL && q->count <= q->size);
if(q->count > 0)
{
result->data = q->q[q->head];
q->head = (q->head + 1) % q->size;
--q->count;
result->status = QUEUE_OK;
}
else
{
result->status = QUEUE_EMPTY;
}
assert(q->count < q->size);
assert(result->status == QUEUE_OK || q->count == 0);
return q;
}
uint32_t queue_full(Queue *q)
{
assert(q != NULL && q->count <= q->size);
return(q->count == q->size);
}
uint32_t queue_empty(Queue *q)
{
return(q->count == 0 && q->head == q->tail);
}
MAIN.C
#include<stddef.h>
#include<stdint.h>
#include<assert.h>
#include "slist.h"
void test_slist_generic()
{
List *list = slist_new();
assert(slist_length(list) == 0);
slist_add_head(list,10);
slist_add_head(list,20);
assert(slist_length(list) == 2);
assert(slist_lookup(list,10));
slist_add_tail(list,30);
slist_add_tail(list,40);
assert(slist_length(list) == 4);
slist_add_on_data(list,10,50);
slist_add_on_data(list,50,60);
//slist_free(list);
//assert(slist_length(list) == 0);
slist_delete_on_data(list,20);
}
int main()
{
test_slist_generic();
return 0;
}
Elton John's last concert is scheduled to take place on September 24, 2023, at Dodger Stadium in Los Angeles. The artist's farewell tour, named "Farewell Yellow Brick Road," commenced in 2018 and has seen him perform over 300 shows across five continents, captivating audiences worldwide.
The significance of Elton John's retirement, describing it as the conclusion of a remarkable era in the music industry. It underscores his immense influence and achievements, including a multitude of chart-topping singles and record-breaking album sales. The report also acknowledges Elton John's philanthropic contributions, notably his efforts in raising funds for HIV/AIDS research.
Furthermore, the emotional aspect of Elton John bidding farewell to touring is discussed. including the quotes from the artist himself, expressing his gratitude to fans and reflecting on the joyous moments throughout his journey. It portrays a sense of nostalgia and acknowledges the impact he has had on the lives of millions of fans worldwide.
In summary, a concise overview of Elton John's final concert and his farewell tour, emphasizing the profound impact his retirement has on the music industry. It offers key details regarding the upcoming concert at Dodger Stadium, the extensive reach of the tour, and Elton John's significant contributions to music and philanthropy. As the final performance approaches, the article captures the bittersweet sentiments surrounding this historic event.

0 Comments