Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <Stdlib.h>
- #include <string.h>
- struct alkio {
- char sNimi[31];
- struct alkio *pSeuraava;
- };
- typedef struct alkio lista;
- lista *SolmuLisaa(lista *pA){
- lista *ptr, *p;
- char nimi[31];
- /*Muistin varaus*/
- if ((ptr=(lista*)malloc(sizeof(lista)))==NULL){
- perror("Muistin varaus epäonnistui");
- exit(1);
- }
- /*Uuden alkion arvojen määrittäminen*/
- getchar();
- printf("Anna lisättävä nimi: ");
- fgets(nimi, 31, stdin);
- strcpy(ptr->sNimi, nimi);
- ptr->pSeuraava = NULL;
- /*Uuden alkion lisääminen listaan*/
- if (pA == NULL) {
- pA = ptr;
- } else {
- p = pA;
- while (p->pSeuraava != NULL)
- p = p->pSeuraava;
- p->pSeuraava = ptr;
- }
- return pA;
- }
- lista *Tulosta(lista *pA){
- lista *ptr = pA;
- int i=1;
- if (ptr != NULL){
- printf("ALKIO\tNIMI\n");
- while (ptr != NULL){
- printf("%d\t%s",i++, ptr->sNimi);
- ptr = ptr->pSeuraava;
- }
- }
- return pA;
- }
- lista *Tyhjenna(lista *pA) {
- lista *ptr = pA;
- while (ptr != NULL) {
- pA=ptr->pSeuraava;
- free(ptr);
- ptr=pA;
- }
- return pA;
- }
- lista *poista(lista *pA,int value) {
- int i=0;
- lista *currP, *prevP;
- prevP = NULL;
- while (currP != NULL) {
- i++;
- if (i == value) {
- printf("%d",i);
- if (prevP == NULL)
- pA = currP->pSeuraava;
- else {
- prevP->pSeuraava = currP->pSeuraava;
- }
- free(currP);
- }
- return pA;
- }
- }
- int main(void) {
- lista *pAlku = NULL;
- int i;
- int nro;
- int valinta;
- do {
- printf("Valitse toiminto valikosta:\n"
- "1) Lisää alkio listan loppuun\n"
- "2) Poista valittu alkio\n"
- "3) Tulosta listan tiedot\n"
- "4) Tyhjennä lista\n"
- "0) Lopeta\n"
- "Valintasi: ");
- scanf("%d", &valinta);
- switch (valinta){
- case(1):
- for (i=0; i<1; i++){
- pAlku = SolmuLisaa(pAlku);
- }
- break;
- case(2):
- printf("Tiedostossa olevat nimet :\n");
- Tulosta(pAlku);
- printf("Anna poistettava nimi:\n");
- scanf("%d",&nro);
- pAlku=poista(pAlku,nro);
- break;
- case(3):
- printf("Tiedostossa olevat nimet:\n");
- Tulosta(pAlku);
- break;
- case(4):
- pAlku = Tyhjenna(pAlku);
- break;
- case(0):
- pAlku = Tyhjenna(pAlku);
- printf("Kiitos ohjelman käytöstä!\n");
- break;
- default:
- printf("Tuntematon valinta.\n");
- break;
- }
- }while (valinta!=0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement