Hej
Pojawił mi się problem na studiach, chodzi dokładniej o listę dwukierunkową. Otóż, nie mogę wyjść z podziwu dla samego siebie, że napisałem program który taką listę tworzy. Zobaczcie kod, program jak byk tworzy 12 strukturek. Skakanie wokół komputera nie trwało jednak długo gdyż szanowny pan z programowania zażyczył sobie dorobić kilka linijek kodu aby po podaniu numeru dana struktura wskakiwała na podane miejsce. Ma to wyglądać jakoś tak:
(teraz)
1 2 3 4 5 6 7 8 9 10
(podajemy np 7[enter]3 i siódmy numerek przeskakuje na miejsce trzeciego)
1 2 7 3 4 5 6 8 9 10
Pewnie jest tak, że dla kogoś kto się na tym zna rozwiązanie jest banalne, ale ja siedzę i siedzę i myślę i myślę.
kod programu
#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
struct baza {
char nazwisko[20];
int id;
baza* poprzedni;
baza* nastepny;
};
int main(int argc, char* argv[])
{
//baza* poczatek;
//baza* ostatni;
baza* temp;
temp=(baza*)malloc(sizeof(baza));
temp->id=1;
temp->nastepny=NULL;
temp->poprzedni=NULL;
strcpy(temp->nazwisko, "pierwszy");
printf("%d %s\n", temp->id, temp->nazwisko);
for(int i=0;i<10;i++)
{
temp=(baza*)malloc(sizeof(baza));
temp->id=i+2;
temp->nastepny=temp;
strcpy(temp->nazwisko, "wyzerowane");
printf("%d %s\n", temp->id, temp->nazwisko);
}
temp=(baza*)malloc(sizeof(baza));
temp->nastepny=NULL;
temp->poprzedni=temp;
strcpy(temp->nazwisko, "ostatni");
printf("%d %s\n", temp->id, temp->nazwisko);
printf("\n \n");
printf("%d %s", temp->id[2], temp->nazwisko[2]);
system("PAUSE");
}
Pomożecie?