/******************
ÀÌ ºÎºÐÀº Áö¿öÁÖ¼¼¿ä.
****************************
*
Áú¹® °Ô½ÃÆÇÀÔ´Ï´Ù.
Áú¹®Àº ±âº» ÆùÆ®
·Î ÇØÁÖ¼¼¿ä.
*
¿À·ù¿¡ ´ëÇÑ Áú¹®À̶ó¸é ¿À·ù ¸Þ½ÃÁö¸¦ Æ÷ÇÔÇÏ¸é ´äº¯ ¹Þ±â°¡ ½¬¿öÁý´Ï´Ù.
*
Áú¹®À» ÇÏ½Ã°í ´äº¯ÀÌ ´Þ¸° ±ÛÀ» »èÁ¦ÇÒ °æ¿ì °æ°í¾øÀÌ °¡ÀÔºÒ°¡Å»Åð ó¸® µË´Ï´Ù.
*
¿©·¯ºÐÀÌ ¿Ã¸®½Ã´Â Áú¹®Àº ´ÙÀ½¿¡ °øºÎÇÏ´Â »ç¶÷µé¿¡°Ô ÇÊ¿äÇÑ ÀÚ·á°¡ µË´Ï´Ù.
*********************************************************************/
Áú¹® Á¦¸ñ :
¿¬°á¸®½ºÆ® Áú¹® µå·Áµµ µÉ±î¿ä?
Áú¹® ¿ä¾à :
¿¬°á¸®½ºÆ® ÇÏ´Ù°¡ ¹®¹ýÂÊÀ¸·Î ¸¹ÀÌ ¸·È÷´Â°Å °°¾Æ¼ Áú¹®µå¸³´Ï´Ù.
Áú¹® ³»¿ë :
#include <stdio.h>
#include <string.h>
typedef struct Node
{
int m_id;
char m_name[10];
Node * m_link;
}Node;
typedef struct _LinkedList
{
Node * m_head;
Node * m_cur;
Node * m_next;
int m_size;
void(*Initialize)(LinkedList *);
void(*Insert)(LinkedList *, int, char[]);
void(*Find)(LinkedList *, int);
void(*Delete)(LinkedList *, int);
void(*PrintAll)(LinkedList *);
void(*DeleteAll)(LinkedList *);
} LinkedList;
void initLinkedList(LinkedList * tt)
{
//tt->m_head = (Node *)malloc(sizeof(Node));
//tt->m_cur = (Node *)malloc(sizeof(Node));
//tt->m_next = (Node *)malloc(sizeof(Node));
tt->m_head = NULL;
tt->m_cur = NULL;
tt->m_next = NULL;
tt->m_size = 0;
tt->Insert = insert; //1¹ø
tt->Find = find;
//2¹ø
tt->Delete = deleteId;
//3¹ø
tt->PrintAll = printAll;//4¹ø
tt->DeleteAll = deleteAll;//5¹ø
}
void insert(LinkedList * tt, int id, char name[])
{
Node * newNode = (Node*)malloc(sizeof(Node));
newNode->m_id = id;
newNode->m_name;
if (tt->m_head = NULL)
{
tt->m_head = newNode;
}
else
{
tt->m_cur = tt->m_head;
newNode->m_link = tt->m_head;
tt->m_head = newNode;
}
}
void find(LinkedList * tt, int id)
{
}
void deleteId(LinkedList * tt)
{
}
void deleteAll(LinkedList * tt)
{
}
void printAll(LinkedList * tt)
{
if (tt->m_head == NULL)
{
return;
}
else
{
tt->m_cur = tt->m_head;
while (tt->m_cur != NULL)
{
printf("%d", tt->m_cur->m_id);
printf("%s", tt->m_cur->m_name);
tt->m_cur = tt->m_cur->m_link;
}
}
}
int main()
{
LinkedList * test = (LinkedList*)malloc(sizeof(LinkedList));
test->Initialize = initLinkedList;
test->Initialize(&test);
int pick;
while (1)
{
scanf("%d", &pick);
switch (pick)
{
case 1: // Insert
int id;
char name[10];
scanf("%s" , &name);
scanf("%d" , &id);
test -> Insert(&tt, id, name);
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6: // »èÁ¦
free(test);
return;
default:
break;
}
}
return 0;
}
Áú¹®1.
C¾ð¾î·Î ´Ü¹æÇâ ¿¬°á¸®½ºÆ® Á¦ÀÛÁßÀε¥ Á¦µý¿¡´Â Ŭ·¡½ºÃ³·³ ¸¸µé¾îº¸°í ½Í¾ú´Âµ¥ ¿©±âÀú±â¼ ¹®Á¦°¡ ¸¹ÀÌ ÅÍÁö³»¿ä.
°³³äµµ µþ¸®±ä ÇÏÁö¸¸ ¹®¹ýÂÊÀ¸·Î ¸¹ÀÌ ¾àÇÑÆíÀε¥ ¾î¶² ºÎºÐÀÌ À߸øÀÎÁö ¾Ë ¼ö ÀÖÀ»±î¿ä?
Áú¹®2. Ȥ½Ã ³ëµå¿¡ Æ÷ÀÎÅÍ ¼±¾ðÇÏ°í ¸µÅ©µå ¸®½ºÆ®¸¦ µ¿ÀûÇÒ´çÇÏ¸é ³»ºÎ¿¡¼ ÀÌÁßÆ÷ÀÎÅÍ°¡ µÇ³ª¿ä?
Áú¹®3 .LinkedList¸¦ ÃʱâÈ ÇÏ´Â InitLinkedList¿¡¼ ÃʱâÈ Çϱâ À§ÇÏ¿© NULLÀ» ³Ö¾ù´Âµ¥ ±×Àü¿¡ µû·Î µ¿Àû ÇÒ´ç °úÁ¤ÀÌ ÇÊ¿äÇÒ±î¿ä?