디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

소스 다 올려볼게여 - -;

ㅇㅇ(58.121) 2010.11.04 02:12:13
조회 92 추천 0 댓글 3

#include <iostream>
#include <cstring>
using namespace std;

struct Node{
 struct Node *prev;
 char name[20];
 struct Node *next;
};

struct DLinkedList{
 struct Node *left;
 struct Node *right;
 struct Node *data;
 int len;
};

void Create_Node(DLinkedList &DLL);
Node* Input_Node(DLinkedList &DLL, char* value);
Node* Insert_After(DLinkedList &DLL, char* front_node, char* value);
Node* Search_Node(DLinkedList &DLL, char* value);
void Delete_Node(DLinkedList &DLL, char* value);
Node* Invert_Node(DLinkedList &DLL);
void Concatenate_Node(DLinkedList &DLL, DLinkedList &DLL2, DLinkedList &DLL3);
void Print_Node(DLinkedList &DLL);

int main(void)

 int n;
 struct DLinkedList DLL1;
 struct DLinkedList DLL2;
 struct DLinkedList DLL3;
 char name1[30];
 char name2[30];
 Create_Node(DLL1);
 Create_Node(DLL2);
 
 while(1)
 {
  cout << "───────────────" << endl;
  cout << "1. Creat Doubly Linked List 1" << endl;
  cout << "2. Creat Doubly Linked List 2" << endl;
  cout << "3. Insert Data " << endl;
  cout << "4. Search Data" << endl;
  cout << "5. Delete Data" << endl;
  cout << "6. Invert Data" << endl;
  cout << "7. Concatenate Data" << endl;
  cout << "8. Print Doubly Linked List" << endl;
  cout << "───────────────" << endl;
  cout << "Select number : ";
  cin >> n;
  switch(n)
  {
  case 1:
   cout << "Input Data : ";
   cin >> name1;
   Input_Node(DLL1, name1);
   break;
  case 2:
   cout << "Input Data : ";
   cin >> name1;
   Input_Node(DLL2, name1);
   break;
  case 3:
   cout << "What Node After? : ";
   cin >> name1;
   cout << "What Node Insert? : ";
   cin >> name2;
   Insert_After(DLL1, name1, name2);
   break;
  case 4: 
   cout << "Input Data : ";
   cin >> name1;
   Search_Node(DLL1, name1);
   break;
  case 5:
   cout << "Delete Data : ";
   cin >> name1;
   Delete_Node(DLL1, name1);
   break;
  case 6:
   cout << "Invert Node" << endl;
   Invert_Node(DLL1);
   break;
  case 7:
   cout << "Concatenate Node" << endl;
   Concatenate_Node(DLL1, DLL2, DLL3);
   break;
  case 8:
   cout<<"───────────────"<<endl;
   Print_Node(DLL1);
   cout<<"───────────────"<<endl;
   break;
  case 9:
   break;
  }
  
  if(n == 9) break;
 }
 
 return 0;
}

void Create_Node(DLinkedList &DLL)
{
 DLL.left = new Node;
 DLL.right = new Node;
 
 DLL.left->next = DLL.right;
 DLL.left->prev = DLL.left;
 
 DLL.right->next = DLL.right;
 DLL.right->prev = DLL.left;
 
 DLL.len = 0;
 DLL.data = NULL;
}

Node* Input_Node(DLinkedList &DLL, char* value)
{
 DLL.data = new Node;
 
 DLL.data->next = DLL.right;
 DLL.data->prev = DLL.right->prev;
 
 DLL.data->prev->next = DLL.data;
 DLL.right->prev = DLL.data;
 DLL.len++;
 strcpy(DLL.data ->name, value);
 
 return DLL.data;
}

Node* Insert_After(DLinkedList &DLL, char* front_node, char* value)
{
 Node* new_Node = new Node;
 int i;
 
 DLL.data = DLL.left->next;
 for(i=0; i<DLL.len; i++)
 {
  if(strcmp(DLL.data->name, front_node)==0) break;
  DLL.data = DLL.data->next;
 }
 
 new_Node->next = DLL.data->next;
 DLL.data->next->prev = new_Node;
 
 new_Node->prev = DLL.data;
 DLL.data->next = new_Node;
 
 DLL.len++;
 strcpy(new_Node->name, value);
 
 return DLL.data;
}

Node* Search_Node(DLinkedList &DLL, char* value)
{
 int i;
 DLL.data = DLL.left->next;
 
 for(i=0 ; i<DLL.len; i++)
 { 
  if(strcmp(DLL.data->name, value)==0) 
  {
   cout << value << " is in " << DLL.len << " Node" << endl;
  }
  DLL.data = DLL.data->next;
 }
 
 return DLL.data;
}
void Delete_Node(DLinkedList &DLL, char* value)
{
 int i=0;
 DLL.data = DLL.left->next;
 
 for(i=0 ; i<DLL.len; i++){
  if(strcmp(DLL.data->name, value)==0)
  {
   DLL.data->prev->next = DLL.data->next;
   DLL.data->next->prev = DLL.data->prev;
   
   delete DLL.data;
   DLL.len--;
   break;
  }
  
  DLL.data = DLL.data->next;
 }
}

Node* Invert_Node(DLinkedList &DLL)
{
 int i;
 DLinkedList p;
 DLinkedList temp;
 p = DLL;
 
 for(i=p.len; i<=0; i--){
  p.data->prev = p.left;
  p.data->next = temp.data;

  temp.data->prev = p.data;
  temp.data->next = temp.right;

  p= temp;
 }
 
 p.data = p.left->next;
 
 for(i=p.len; i<=0; i--)
 {
  cout << i+1 << " " << p.data->name << endl;
  p.data = p.data->next;
 }
 
 DLL = p;
 return DLL.data;
}

void Concatenate_Node(DLinkedList &DLL, DLinkedList &DLL2, DLinkedList &DLL3)
{
 int i;
 
 if(DLL.data->name == NULL){
  DLL3 = DLL2;
  cout << DLL3.data->name << endl;
 }
 else{
  DLL3 = DLL;
  if(DLL2.data->name != NULL)
  {
   DLL3.data = DLL3.left->next;
   
   for(i=0; i<DLL3.len; i++)
   {
    cout << i+1 << " " << DLL3.data->name << endl;
    DLL3.data = DLL3.data->next;
   }
  }
  DLL2.data = DLL2.left->next;
  
  for(i=0; i<DLL2.len; i++)
  {
   cout << i+1 << " " << DLL2.data->name << endl;
   DLL2.data = DLL2.data->next;
  }
 }
}

void Print_Node(DLinkedList &DLL)
{
 int i;
 DLL.data = DLL.left->next;
 
 for(i=0; i<DLL.len; i++)
 {
  cout << i+1 << " " << DLL.data->name << endl;
  DLL.data = DLL.data->next;
 }
}


;;;;;;;;;;;;

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 시세차익 부러워 부동산 보는 눈 배우고 싶은 스타는? 운영자 24/05/27 - -
224550 본격 애인 인증 [3] nRST갤로그로 이동합니다. 10.12.13 162 0
224549 한글의 굴욕. [2] new gay[max](183.105) 10.12.13 137 0
224547 플밍갤 수준 점검 들어간다2 [4] 아주아슬갤로그로 이동합니다. 10.12.13 123 0
224545 우와아.. 프갤러 페북칭구 33명. [7] Minryu갤로그로 이동합니다. 10.12.13 120 0
224544 나도 요즘 기분이 영 안좋다. [6] 땡칠도사갤로그로 이동합니다. 10.12.13 96 0
224543 플밍갤 수준 점검 들어간다 [11] 프로미넌스갤로그로 이동합니다. 10.12.13 144 0
224542 내가 놀고 있는 이유 [2] nRST갤로그로 이동합니다. 10.12.13 58 0
224541 요즘 만사가 짜증이다 [6] 김늅늅(61.40) 10.12.13 77 0
224540 현실적으로 리팩토링은 안하는게 좋죠. [14] ㅗㄹ갤로그로 이동합니다. 10.12.13 209 0
224539 스파이더 워킹 [1] LightEach갤로그로 이동합니다. 10.12.13 207 0
224538 타자검정에서 산성비게임 자바로 만들려는데 질문좀 할께요 dddd(203.246) 10.12.13 696 0
224537 예전 우분투 바탕화면 [1] 유리한갤로그로 이동합니다. 10.12.13 192 0
224535 예전 윈도우 바탕화면 [1] 유리한갤로그로 이동합니다. 10.12.13 138 0
224533 횽들 혹시 회사서 단위테스트 해? [11] 키젤갤로그로 이동합니다. 10.12.13 153 0
224531 자짤 왜 이모양인가요? [2] nRST갤로그로 이동합니다. 10.12.13 96 0
224530 진심에서 우러나온 사죄의 말씀 [3] nRST갤로그로 이동합니다. 10.12.13 87 0
224529 앨리스때문에 내 인증이 잘 못 됐다는 것을 알았어 [7] 해일리갤로그로 이동합니다. 10.12.13 126 0
224527 바탕화면은 눈이 편안하고 안정감을 줄 수 있는 [2] 노힛갤로그로 이동합니다. 10.12.13 127 0
224525 16일부터 통큰치킨 판매 중단한대 엉엉 [3] 분당살람갤로그로 이동합니다. 10.12.13 79 0
224524 가젯 잘 쓰면 오히려 깔끔해요. [5] ㅗㄹ갤로그로 이동합니다. 10.12.13 124 0
224523 멘탈이 무너지고 있어 [5] 유리한갤로그로 이동합니다. 10.12.13 184 0
224522 유행은 따라가는게 속 편하지 [6] nRST갤로그로 이동합니다. 10.12.13 97 0
224521 해일리 횽은 영원히 아깽이일꺼야 [9] 은행강도갤로그로 이동합니다. 10.12.13 78 0
224520 다들 나빠. [16] Minryu갤로그로 이동합니다. 10.12.13 222 0
224519 안녕? 난 에나레스티라고 해 [4] nRST갤로그로 이동합니다. 10.12.13 66 0
224518 바탕화면 보니 다들 윈7쓰시면서 가젯을 안쓰시네요. [3] ㅗㄹ갤로그로 이동합니다. 10.12.13 125 0
224515 바탕화면 인증질하면 재밌냐 이 개쉛기야 [6] 개쉛기갤로그로 이동합니다. 10.12.13 150 0
224513 쿨타임 됐다 까자 [4] 그나저나(211.54) 10.12.13 73 0
224512 자바에서 간단한 그림출력하기인데 왜안되는지좀 봐주세요ㅠㅠ [1] dddd(203.246) 10.12.13 56 0
224510 그런데 바탕화면이 어떻게 저렇게 깨끗할수가 있지? [10] Minryu갤로그로 이동합니다. 10.12.13 225 0
224509 니들 빨간 당구공 3개의 비밀 아냐? [4] rntjr갤로그로 이동합니다. 10.12.13 137 0
224508 프갤 한 몇달 안 들어온 사이에 부랄 없는 사람들이 좀 많네? 그나저나(211.54) 10.12.13 49 0
224507 날씨가 구름도 많고 뭐라도 곧 쏟아질거 같은게 [1] 오늘은(211.54) 10.12.13 54 0
224505 방학 [8] ㅇㅅㅇ(218.49) 10.12.13 136 0
224503 Sorry, I love you 통큰(123.215) 10.12.13 43 0
224502 시간이 지나도 난 계속 아깽이일 것 같아 [10] 해일리갤로그로 이동합니다. 10.12.13 110 0
224501 Blowfish 암호화 알고리즘 어떼? [4] 머그컵갤로그로 이동합니다. 10.12.13 304 0
224500 으헉 와우 12시까지만 할려고 했는데 [3] 꿀레갤로그로 이동합니다. 10.12.13 109 0
224499 선형대수 책 사러가야지 이모군(1.225) 10.12.13 70 0
224497 고향 내려갔다 왔더니 이게 무슨 비극적인 뉴스냐... [1] 아주아슬갤로그로 이동합니다. 10.12.13 125 0
224495 도와주세요!! 도와주세요!!! [2] 낙오자(175.115) 10.12.13 69 0
224491 코딩을 잘한다의 기준 [2] 시크한훈남갤로그로 이동합니다. 10.12.13 157 0
224489 졸리내.. 외근나가야 하는대.. rntjr갤로그로 이동합니다. 10.12.13 88 0
224487 헤더파일과 .a 파일 연결이 안되는것 같습니다.. ㅠ [조공] [6] ㅁㄴㅇ(175.210) 10.12.13 365 0
224486 졸업작품 시즌이 오니 갑자기 생각난다 ㅋㅋ 아ㅋㅋ(211.54) 10.12.13 81 0
224485 디비 직렬화 좀 갈쳐주세요 [4] 빡곰갤로그로 이동합니다. 10.12.13 72 0
224483 프갤 횽님들 상담좀요 빽수(219.250) 10.12.13 37 0
224482 학생들이 착각하는 연봉협상의 진실 [1] ㅗㄹ갤로그로 이동합니다. 10.12.13 211 0
224481 실력에 따라 가장 대우가 큰 프로그래머가 뭘까요. [9] 할리의본링갤로그로 이동합니다. 10.12.13 271 0
224480 앨리스 증후군 [12] Minryu갤로그로 이동합니다. 10.12.13 353 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2