라스트 노드
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct listNode *node_p;
struct listNode {
char name[5];
node_p link;
};
void printList(node_p L)
{
node_p p;
printf("\n(");
p = L;
while (p != NULL) {
printf("%s", p->name);
p = p->link;
if (p != NULL) printf(", ");
}
printf(")\n");
}
node_p addLastNode(node_p L, char *x)
{
node_p newNode, p;
newNode = (node_p)malloc(sizeof(struct listNode));
strcpy(newNode->name, x);
newNode->link = NULL;
if ( L == NULL )
{
L = newNode;
return L;
}
p = L;
while ( p->link != NULL)
{
p = p->link;
}
p->link = newNode;
return L;
}
node_p reverse(node_p L)
{
node_p p, q, r;
p = L;
q = NULL;
while ( p != NULL )
{
r = q;
q = p;
p = p->link;
q->link = r;
}
L = q;
return L;
}
void main()
{
node_p L = NULL;
char temp[5];
printf("마지막에 노드로 삽입할 노드 (종료시는 xxx) : ");
scanf("%s", temp);
while (strcmp(temp, "xxx")) {
L = addLastNode(L, temp);
printf("마지막에 노드로 삽입할 노드 (종료시는 xxx) : ");
scanf("%s", temp);
}
L = reverse(L);
printList(L);
}