Korzystając z definicji:
struct commodity
{
char name[80];
int stock;
float price;
};
proszę zaimplementować funkcję obniżającą cenę artykułu w przypadku, gdy stan (stock) przekracza zadaną wartość. Proszę o zaimpementowanie dwóch wersji funkcji obniżającej cenę: pobierającą strukturę commodity przez wartość i przez wskaźnik.
Korzystając z następujących definicji:
struct Node;
typedef Node* Node_ptr;
struct Node
{
char word[MAX_WORD_LENGTH];
Node_ptr ptr_to_next_node;
};
/* Function to assign a linked list to "a_node" */
void assign_list(Node_ptr &a_list);
/* Function to assign a new dynamic node variable to "a_node" */
void assign_new_node(Node_ptr &a_node);
/* Function to print the strings in the list "a_node" */
void print_list(Node_ptr a_node);
/* MAIN PROGRAM */
int main()
{
Node_ptr my_list = NULL;
assign_list(my_list);
cout << "\nTHE LIST IS NOW:\n";
print_list(my_list);
return 0;
}
proszę zaimplementować funkcje assign_list(Node_ptr &), wczytującą do listy kolejne stringi aż do napotkania stringu złożonego z jednoelementowego ciągu ".", assign_new_node(), tworzącą nowy węzeł i print_list(), listującą węzeł.
Proszę zaimplementować i przetestować następujące funkcje do operacji na liście z Zadania 2:
Funkcja:
void add_after(Node_ptr &list, char a_word[], char word_after[])
wstawia węzeł zawierający ciąg znaków "word_after" w liście "list", po pierwszym wystąpieniu w liście węzła z ciągiem znaków "a_word". Jeżeli lista "list" nie zawiera takiego ciągu, pozostaje niezmieniona.
Funkcja:
void delete_node(Node_ptr &a_list, char a_word[])
usuwa z listy "a_list" pierwszy rekord zawierający ciąg znaków "a_word".
Funkcja:
void list_selection_sort(Node_ptr &a_list)
sortuje listę alfabetycznie.
Proszę zaimplementować dwukierunkową listę zawierającą struktury, opisujące dane personalne pracowników firmy, oraz funkcje pozwalające wstawiać rekordy w dowolnym miejscu listy i usuwać rekordy z dowolnego miejsca.