http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=2839 [º¹»ç]
³ëµå »ý¼º, ¿¬°á
ºÎºÐÃâ·Â, Àüü Ãâ·ÂÀº ÀÌ»ó¾øÀÌ ±¸ÇöÀÌ µÇ¾ú´Âµ¥
Áß°£»ðÀÔ ÀÌ À߾ȵ˴ϴÙ
¿¡·¯´Â ¾È³ª°í¿ä. ½ÇÇàÀºµÇ´Âµ¥
¿¹¸¦ µé¾î
Áß°£»ðÀÔ ¸Þ´º¿¡ µé¾î°¡¸é
¸î¹ø° ³ëµå¿¡ ³ÖÀ»²«Áö ¹¯°ÔµÇ´Âµ¥
3 À̶ó°í ÀÔ·ÂÇϸé
3¹ø° ³ëµå·Î À̵¿ÇÕ´Ï´Ù
3¹ø° ³ëµå¿¡ »õ·Î¿î ³ëµå »ý¼ºÇؼ
±× ³ëµå¿¡ µ¥ÀÌÅ͸¦ ÀԷ¹޽À´Ï´Ù ( ex : 100)
±×¸®°í ÀÌ »õ·Î¿î ³ëµå¸¦ ÀÌÀü³ëµå¿Í ´ÙÀ½³ëµå¿¡ ¿¬°áÇÏ°í
Àüü Ãâ·ÂÇغ¸¸é Ãß°¡ °¡ ¾ÈµË´Ï´Ù...
¤Ð¤Ð
¹Ø¿¡ ÄÚµå ÀÖ½À´Ï´Ù Çѹø ºÁÁÖ¼¼¿ä ¤Ð¤Ð ÁÖ¼®À» µÚ´Ê°Ô ´Þ¾Æ³ù´Âµ¥ ,,,,,,, ±ÞÇÑ°Ô ´Ü´Ù°í
ÁöÀûÇØÁÖ½Ã¸é °¨»çÇÏ°Ú½À´Ï´Ù.
#include <stdio.h>
#include <stdlib.h>
typedef int ElementType;
typedef struct node{ //³ëµå ±¸Á¶Ã¼ ¼±¾ð (µ¥ÀÌÅÍ Çʵå , ´ÙÀ½ ³ëµå Æ÷ÀÎÅÍ Çʵå)
ElementType Data;
node * NextNode;
}Node;
Node* Create_Node(ElementType a){ // ³ëµå »ý¼º ÇÔ¼ö ( Èü¿µ¿ª¿¡ »ý¼º¸¸ ÇÑ ÈÄ¿¡ Append_Node ÇÔ¼ö·Î ³ëµå ¿¬°á)
Node* NewNode = (Node*)malloc(sizeof(Node));
NewNode -> Data = a;
NewNode -> NextNode = NULL;
return NewNode;
}
void Append_Node(Node** Head, Node* NewNode) //»ý¼ºµÈ ³ëµå ¸¦ ¿¬°á ÇÏ´Â ÇÔ¼ö /
{
if( (*Head) == NULL) // ¸Å°³ º¯¼ö¸¦ 2°³ °¡Áö´Âµ¥ ¸ÞÀÎÇÔ¼ö ³»¿¡ º¯¼ö Node* List, ¿Í Node* NewNode °¡ ÀÖÀ½
{ // Node* List ´Â Çìµå°¡ µÊ . ¿¹¸¦ µé¾î Append_Node(&List , Create_Node(1)) »ç¿ë
(*Head)=NewNode; // Head °¡ NULL À϶§ Head °¡ NewNode ¸¦ °¡¸£Å°°ÔÇÔ.
}
else
{
Node* Tail = (*Head);
while(Tail->NextNode != NULL) // Head °¡ NULL ÀÌ ¾Æ´Ò¶§ Àӽ÷ΠTail ³ëµå »ý¼º ÈÄ Head ÁÖ¼Ò°ªÀ» ÁÜ
{
Tail = Tail -> NextNode ; // ³ëµå¿¡ ¼øÂ÷ Á¢±ÙÇÏ¿© NULL ÀÌ µÉ¶§±îÁö À̵¿
}
Tail->NextNode = NewNode; // ´ÙÀ½ ³ëµå¸¦ °¡¸£Å°´Â Æ÷ÀÎÅÍ°¡ NULL Àΰæ¿ì »ý¼ºµÈ NewNode ¸¦ °¡¸£Å°°Ô ÇÔ
}
}
void menu (void) // ¸Þ´º¸¦ »ý¼º
{
printf("=================================\n");
printf("@@@ Node Ãß°¡ (1) @@@@@@@@@@@@@@@\n");
printf("@@@ Node Áß°£»ðÀÔ (2) @@@@@@@@@@@\n");
printf("@@@ Node ÁöÁ¤Ãâ·Â (3) @@@@@@@@@@@\n");
printf("@@@ Node ÀüüÃâ·Â (4) @@@@@@@@@@@\n");
printf("=================================\n");
}
void booboon(Node** Head, int count) // ºÎºÐ ³ëµå Á¢±Ù ÇÏ¿© ±× µ¥ÀÌÅ͸¦ Ãâ·Â Çϱâ À§ÇÑ ÇÔ¼ö
{
int i = 0; // for ¹®À» µ¹¸®±â À§ÇÑ º¯¼ö
Node* NewNode;
NewNode = (*Head);
for(i=1 ; i != count ; i++) // »ç¿ëÀÚ°¡ Á¢±ÙÇÏ·Á´Â X¹ø° ³ëµå¸¦ Á¢±Ù (for¹® 3¹øµ¹¸®¸é 3¹ø°³ëµå Á¢±Ù)
{
NewNode= NewNode->NextNode ;
}
printf(" %d", NewNode->Data); // ÇØ´ç ³ëµå µ¥ÀÌÅÍ Ãâ·Â
printf("\n\n");
}
void Insert_Node (Node** Head , Node* NewNode, int count) // Áß°£ ³ëµå¸¦ »ðÀÔÇϱâ À§ÇÑ ÇÔ¼ö !!!! ( À̺κп¡¼ ¸·Èû!!!)
{
int i = 0; //Æ÷¹® µ¹¸®±â À§ÇÑ º¯¼ö
Node* Find;
//Node* Temp = NULL;
Find = (*Head); // Find ¿¡ Head ÁÖ¼Ò°ª ´ëÀÔ
for(i=1 ; i != count ; i++) // ÇØ´ç ³ëµå Á¢±Ù
{
Find = Find ->NextNode ;
}
NewNode = Find->NextNode; // º»·¡ ³ëµå°¡ °¡¸£Å°°í ÀÖ´Â ´ÙÀ½³ëµå¸¦ »ý¼ºµÈ NewNode °¡ °¡¸£Å°°Ô ÇÔ
//Temp = NewNode;
Find->NextNode = NewNode; // º»·¡ ³ëµå°¡ °¡¸£±â°íÀÖ´Â ´ÙÀ½³ëµå¸¦ »ý¼ºµÈ NewNode ·Î ¹Ù²Þ
}
void main (void)
{
int Num=0; // ¸Þ´º ¸¦ ¼±ÅÃÇϱâ À§ÇÑ º¯¼ö
int NNUM=0; // Ãß°¡ ÇÒ ³ëµå °³¼ö¸¦ ÀԷ¹ޱâÀ§ÇÑ º¯¼ö
int input=0; //»ý¼ºµÈ ³ëµåÀÇ µ¥ÀÌÅ͸¦ ÀԷ¹ޱâ À§ÇÑ º¯¼ö
int i=0; //for ¹® À» µ¹¸®±âÀ§ ÇÑ º¯¼ö
Node* List = NULL;
Node* NewNode = NULL;
while(1)
{
menu();
scanf("%d",&Num);
switch (Num){
case 1 :
{
printf(" ³ëµå¸¦ ¸î°³ Ãß°¡ÇÒ±î¿ä? \n");
scanf("%d", &NNUM);
printf("\n\n");
printf("³ëµå Ãß°¡Áß .........\n");
for(i=1 ; i<= NNUM ; i++)
{
printf("»õ·Î¿î ³ëµå ÀÔ´Ï´Ù. µ¥ÀÌÅ͸¦ ÀÔ·ÂÇØÁÖ¼¼¿ä \n",i);
scanf("%d",&input);
Append_Node(&List , Create_Node(input));
printf("³ëµå Ãß°¡ ¿Ï·á. \n", i);
printf("\n\n");
}
break;
}
case 2 :
{ int count = 0 ;
int input = 0;
printf("¸î¹ø° ³ëµå¿¡ »ðÀÔ ÇϽðڽÀ´Ï±î? \n");
scanf("%d",&count);
printf("Áß°£ »ðÀÔ ÇÒ »õ·Î¿î ³ëµå ÀÔ´Ï´Ù. µ¥ÀÌÅ͸¦ ÀÔ·ÂÇØÁÖ¼¼¿ä. \n");
scanf("%d", &input);
Insert_Node(&List, Create_Node(input), count);
printf("³ëµå »ðÀÔ ¿Ï·á µÇ¾ú½À´Ï´Ù \n\n");
break;
}
case 3 :
{
int count = 0;
printf(" ¸î¹ø° ³ëµå¿¡ Á¢±Ù ÇϽðڽÀ´Ï±î ? \n");
scanf("%d",&count );
printf(" %d¹ø° ³ëµå Data : \n ", count);
booboon(&List, count);
break;
}
case 4 :
{
printf(" ³ëµå¸¦ Ãâ·Â ÇÕ´Ï´Ù. \n");
printf(" ÇöÀç ³ëµå´Â : \n");
for(NewNode = List ; NewNode != NULL; NewNode = NewNode->NextNode)
{
printf(" %d \n",NewNode->Data);
}
printf("\n");
}
}
}
}
|
Hit : 7418 Date : 2011/01/06 04:47
|