Untitled
unknown
c_cpp
a year ago
1.3 kB
7
Indexable
/*
Definito il tipo di dato per rappresentare una lista dinamica di interi, scrivere un sottoprogramma che riceve in ingresso una lista l. Il sottoprogramma
modifica e restituisce la lista l aggiungendo un nuovo nodo contenente il valore 0 tra ciascuna coppia di elementi consecutivi, dove il primo è il
doppio del secondo.
Esempio:
Se il sottoprogramma riceve in ingresso
L1 = 4 -> 2 -> 1 -> 5 -> 0 -> 0 -> 1 ->|
allora restituisce la lista modificata
L1 = 4 -> 0 -> 2 -> 0 -> 1 -> 5 -> 0 -> 0 -> 0 -> 1 ->|
Non sono disponibili sottoprogrammi di manipolazione delle liste. Utilizzate e sviluppate quelli che ritenete utili.
*/
#include <stdio.h>
void inserisciDopo(nodo_t *n)
{
nodo_t *nuovo = (nodo_t *)malloc(sizeof(nodo_t));
nuovo->num = 0;
nuovo->next = n->next;
n->next = nuovo;
}
nodo_t *modificaLista(nodo_t *l)
{
if(l==NULL || l->next == NULL)
{
return l;
}
nodo_t *curr = l;
while(curr != NULL && curr->next != NULL)
{
if(curr->num == 2 * curr->next->num ||
(curr->num == 0) && curr->next->num == 0)
{
inserisciDopo(cur);
curr = curr -> next;
}
curr = curr -> next;
}
return l;
}
int main() {
// Write C code here
printf("Try programiz.pro");
return 0;
}Editor is loading...
Leave a Comment