Questo sito utilizza cookies
solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi
l'informativa sui cookies
.
Accesso in corso...
Username:
Password:
oppure
Username o password invalidi
Forum
Sorgenti
C
C++
Managed C++
Visual Basic .NET
Visual Basic
Visual C++
Java
C#
Perl
Qbasic
Delphi
Python
Prolog
Lua
Scheme
Cobol
LabVIEW
Ruby
ASP
PHP/MySQL
x86 Assembly
MIPS Assembly
Pascal
Fortran
Bash
Gml
Javascript
Programmi
Animazioni
Desktop
Esempi
Giochi
Grafica e Fotografia
Insegnamento e hobby
Internet
Lavoro e finanza
Matematica e fisica
Moduli e librerie
Musica
Networking
Scripts
Sicurezza
System Tweak
Utility
Web authoring
Guide
Visual Basic .NET
Pascal
HTML
SDL
Typescript
VBScript
Batch scripting
GWBasic
Licenze Software
Recensioni
Manuali
Software
Tutorials
Linguaggi
ASP
C
C#
C++
Delphi
Java
Pascal
Perl
PHP
Prolog
Python
Ruby
Ruby On Rails
Scheme
Visual Basic
Google
Hardware
Informatica
Internet
iPhone
Masterizzare
CD
DVD
Files Immagine
Mp3 e Audio
Sicurezza e OS
Sistemi operativi
Linux
Windows
Video Digitale
Lezioni
Programmazione
Ruby
iOS
Tecnologie
Multi Touch
Project Zone
Che cos'č?
Progetti pių attivi
Editor mappe
Analisi testi
Parole
FILDER
2048
2D Mappy
RTDownloadCounter
SSBackUp
Estrazione
Codificatore
pSIMPLETRON
ErrorReporter.NET
Web Escape
Napoleon
Mini Cad
Tutti i progetti
Utility
News nel tuo sito
Blog
Compilatori
Masterizzare
Siti amici
Pubblica un sorgente
Programmare
Come imparare a programmare
Come diventare un buon programmatore
Community
Chi Siamo?
Membri
Dev Team
Join Us
Libreria
Premio Stallman
I Top 10
Medagliere
Mascotte
Foto raduni
Assumici
Scrivici
supportaci
Forum
-
C/C++
- cancellazione della testa come evitare di perdere tt la lista?
matteog
(Normal User)
Pro
Messaggi:
149
Iscritto:
10/04/2009
Postato alle
21:15
Venerdė, 27/11/2009
Codice sorgente - presumibilmente C++
#include "stdafx.h"
# include <iostream>
# include <cstdlib>
# include<string.h>
#include <stdio.h>
# define max 50
using
namespace
std
;
struct
lista
{
char
info
[
max
]
;
char
cognome
[
max
]
;
char
classe
[
max
]
;
char
nascita
[
max
]
;
int
matricola
;
lista
*
next
;
}
;
typedef
lista
*
p
;
int
i
=
0
;
int
vet
[
1
]
;
int
menu
(
)
;
void
cancella
(
p,
char
[
max
]
,
int
i,
int
m
)
;
void
stampa
(
p
)
;
p crea
(
int
n
)
;
p inserisci
(
p,p
)
;
void
cerca
(
p
)
;
void
cercacognome
(
p
)
;
void
cercanascita
(
p
)
;
void
cercaclasse
(
p
)
;
void
cercamatricola
(
p
)
;
int
main
(
)
{
int
scelta
;
char
x
[
max
]
;
p temp
=
NULL
,l
=
NULL
,f
;
int
m
=
0
;
int
n
=
0
;
do
{
scelta
=
menu
(
)
;
switch
(
scelta
)
{
case
1
:
n
++
;
temp
=
crea
(
n
)
;
l
=
inserisci
(
l,temp
)
;
f
=
l
;
break
;
case
2
:
cout
<<
"la lista e'
\n
"
;
stampa
(
l
)
;
cout
<<
"
\n
"
;
break
;
case
3
:
cout
<<
"inserisci il nome da cancellare
\n
"
;
cin
>>
x
;
l
=
f
;
cancella
(
l,x,i,m
)
;
break
;
case
4
:
cerca
(
l
)
;
break
;
case
5
:
cercacognome
(
l
)
;
break
;
case
6
:
cercaclasse
(
l
)
;
break
;
case
7
:
cercanascita
(
l
)
;
break
;
case
8
:
cercamatricola
(
l
)
;
break
;
}
}
while
(
scelta
!
=
9
)
;
system
(
"pause"
)
;
}
void
cancella
(
p l,
char
x
[
]
,
int
i,
int
m
)
{
system
(
"cls"
)
;
p temp
=
l
;
if
(
l
!
=
NULL
)
{
while
(
strcmp
(
l
-
>
info,x
)
!
=
0
)
{
temp
=
l
;
l
=
l
-
>
next
;
}
temp
-
>
next
=
l
-
>
next
;
delete
l
;
}
else
{
cout
<<
"errore"
<<
endl
;
}
}
come posso evitare in fase di cancellazione che la lista venga persa nel caso in cui venga eliminato la testa della lista?
HeDo
(
Founder Member
)
Guru^2
Messaggi:
2765
Iscritto:
21/09/2007
Postato alle
21:52
Venerdė, 27/11/2009
per cancellare la testa basta ritornare come testa il secondo elemento e deallocare la testa iniziale.