Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Solmu *poista_muisti(Solmu *pAlku)
- {
- Solmu *pSolmu;
- Solmu *pSolmu2;
- Solmu *pSolmu3;
- int i, j, MuistiAlue, lkm;
- printf("\nVARAUS \tKOKO\tSISÄLTÖ\n");
- while(pSolmu != NULL)
- {
- printf("\n%6d \t%ld\t%s", i + 1, pSolmu->iMuistialue, (char *) pSolmu->chTeksti);
- lkm++;
- i++;
- pSolmu = pSolmu->pSeuraava;
- }
- printf("\nValitse muistialue, joka vapautetaan.\n");
- printf("> ");
- scanf("%d", &MuistiAlue);
- if(MuistiAlue < 1 || MuistiAlue > lkm)
- {
- printf("\nMuistialue ei ole käytössä.\n");
- }
- else if(lkm == 1) /*Ainut ja ensimmäinen*/
- {
- pSolmu = pAlku;
- free(pSolmu);
- pAlku = NULL;
- return pAlku;
- }
- else if(MuistiAlue == lkm) /* Viimeinen */
- {
- pSolmu = pAlku;
- for(j = 1; j < MuistiAlue - 1; j++)
- {
- pSolmu = pSolmu->pSeuraava;
- }
- pSolmu2 = pSolmu->pSeuraava;
- pSolmu->pSeuraava = NULL;
- while(pSolmu != NULL)
- {
- pSolmu = pSolmu->pSeuraava;
- }
- free(pSolmu2);
- return pAlku;
- }
- else /* Siirrytään ennen poistettavaan */
- {
- pSolmu = pAlku;
- for(j = 1; j < MuistiAlue - 1; j++)
- pSolmu = pSolmu->pSeuraava;
- }
- if(MuistiAlue == 1) /* Ensimmäinen */
- {
- pSolmu = pAlku;
- pSolmu2 = pSolmu->pSeuraava;
- pAlku = pSolmu2;
- free(pSolmu);
- return pAlku;
- }
- else /* Keskeltä */
- {
- pSolmu2 = pSolmu->pSeuraava;
- pSolmu3 = pSolmu2->pSeuraava;
- pSolmu->pSeuraava = pSolmu3;
- free(pSolmu2);
- }
- return pAlku;
- }
Add Comment
Please, Sign In to add comment