Przerobienie kodu z C, aby odpowiadał innemu zadaniu

0

Mam problem muszę przerobić poniższy kod tak, aby odpowiadał innemu zadaniu i nie ukrywam, że sprawia mi to nie lada problem.

Treść Zadania:

Utworzyć listę jednokierunkową ze struktur (char* napis, int liczba) z możliwością: dodawania, przeglądania i usuwania elementu o największej wartości.

A oto kod którym na obecną chwilę dysponuję:

#include <stdio.h>
#include<stdlib.h>
#include<string.h>
struct node 
{
	int data;
	char napis;
	struct node *next;
};
struct node *kolejka = NULL;

void wyswietl()
{
	struct node *temp;
	temp=kolejka;
	printf("\n");
	while(temp!=NULL)
	 {
	 	printf("%d->",temp->data);
	 	temp=temp->next;
	 }
	 printf("NULL\n");
}

void dodaj_na_poczatek(int x)
{
 struct node *nowy;
 nowy=(struct node *)malloc(sizeof *nowy);
 nowy->data=x;
 nowy->next=kolejka;
 kolejka=nowy;
}

int get_min()
{
	int pom;
	struct node *tmp;
	if(kolejka!=NULL)
	{
		tmp=kolejka;
		pom=kolejka->data;
		kolejka=kolejka->next;
		free(tmp);
		return pom;
	}
	else return -999;
}

void put(int x)
{
	struct node *nowy,*tmp=kolejka;
	if(kolejka==NULL||kolejka->data>x)dodaj_na_poczatek(x);
	else
	{
		nowy=(struct node *)malloc(sizeof *nowy);
        nowy->data=x;
        while(tmp->next!=NULL&&tmp->next->data<x)
		                   tmp=tmp->next;
        nowy->next=tmp->next;
        tmp->next=nowy;
		
	}
	

}

int main()
{
	int wybor,dana;
	while(1)
	{
		printf("\n0 - koniec\n1 - wyswietl\n2 - put\n3 - get_min\n");
		scanf("%d",&wybor);
		switch(wybor)
		{
		 case 1: wyswietl();break;
		 case 2: printf("\n Podaj wartosc do dodania ");
		         scanf("%d",&dana);
				 put(dana);
				 break;
		  case 3:printf("\nzdjeto=%d\n",get_min());
		         break;
		 case 0:return 0;	
		}
	}
}
0

a co to tego ma c#?

1 użytkowników online, w tym zalogowanych: 0, gości: 1