0664jester
Mitglied
danke.
ich hab den char pointer eine fixe länge gegeben:
char name[100];
ich hab den char pointer eine fixe länge gegeben:
char name[100];
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
typedef struct llnode
{
char *name;
struct llnode *next;
// struct node *prev;
} llnode;
struct llnode *head = NULL; //initialiere den head
void addFront(char *prasemi)
{
struct llnode *tempnode1;
tempnode1 = (struct llnode*)malloc(sizeof(struct llnode));
strcpy(tempnode1 -> name, prasemi);
if(head == NULL)
{
head = tempnode1;
head -> next = NULL;
}
else
{
while(memcmp(head, tempnode1, sizeof(&tempnode1) < 0 ))
{
head = tempnode1 -> next;
if(memcmp(head, head -> next, sizeof(&tempnode1)) > 0 )
{
head = tempnode1 -> next;
}
}
}
}
tempnode1 = (struct llnode*)malloc(sizeof(struct llnode));
strcpy(tempnode1 -> name, prasemi);
struct llnode* tempnode1, *itr;
tempnode1 = (struct llnode*) malloc(sizeof(struct llnode));
tempnode1->name = strdup(prasemi);
tempnode1->next = NULL;
if(head == NULL) {
head = tempnode1;
} else {
itr = head;
while(itr->next != NULL) {
itr = itr->next;
}
itr->next = tempnode1;
}
void anHaengen(char *prasemi)
{
llnode *zeiger; //Zeiger für den Zugriff auf einzelne Elmente
if(head == NULL) //gibt es schon ein Element in der Liste?
{
if((head = malloc(sizeof(struct llnode))) == NULL)
{
printf("Kein Speicherplatz vorhanden fuer anfang\n");
return;
}
strcpy(head->name, strdup(prasemi)); //Wenn nein
head->next = NULL;
}
else
{
zeiger = head;
while(zeiger->next != NULL)
{
zeiger = zeiger->next;
if((zeiger->next = malloc(sizeof(struct llnode))) == NULL)
{
printf("Kein Speicherplatz für das letzte Element\n");
return;
}
zeiger=zeiger->next;
strcpy(zeiger->name,strdup(prasemi));
zeiger->next=NULL;
}
}
}
//------------------------------------------------------------------------------
void sortList(char *prasemi)
{
llnode *zeiger;
llnode *zeiger1;
if(head == NULL) //ist es das erste Element in der Liste?
{
anHaengen(prasemi);
}
else // Suche solange bis es gefunden wird
{
zeiger = head;
while(zeiger != NULL && (strcmp(zeiger->name, strdup(prasemi))<0)) //abdef
{
zeiger = zeiger->next; //zeiger ist geht bis vor d
}
if(zeiger == NULL) // wenn null ist dann hinten anhängen
{
anHaengen(prasemi);
}
else if(zeiger == head) //unser Elment das kleinste ist - vor head einfügen
{
zeiger = malloc(sizeof(struct llnode));
if(NULL == head)
{
printf("Kein Speicher\n");
return;
}
strcpy(head->name,strdup(prasemi));
head->next=zeiger;
}
else //Element ist irgendwo in der Mitte
{
zeiger1 = head;
while(zeiger1->next != zeiger)//suchen das Element das nicht vor Zeiger steht
{
zeiger1=zeiger1->next;
}
zeiger = malloc(sizeof(struct llnode));
if(NULL==zeiger)
{
printf("Kein Speicher\n");
return;
}
strcpy(zeiger->name,strdup(prasemi));
zeiger->next = zeiger1->next;
zeiger1->next = zeiger;
}
}
}
//------------------------------------------------------------------------------
void printList()
{
struct llnode *currentnode;
currentnode = head;
while(currentnode != NULL)
{
printf("%s\n", currentnode->name);
currentnode = currentnode->next;
}
}
strcpy(head->name, strdup(prasemi)); //Wenn nein
while(zeiger->next != NULL)
{
zeiger = zeiger->next;
if((zeiger->next = malloc(sizeof(struct llnode))) == NULL)
if((head = (struct llnode*) malloc(sizeof(struct llnode))) == NULL)
{
printf("Kein Speicherplatz vorhanden fuer anfang\n");
return;