홈으로...

c++를 C언어로 바꿔주실분 ㅠㅠ

  • LV 1 zenojm
  • 비추천 0
  • 추천 2
  • 조회 3216
  • 2013.11.04 18:41
아무리 코드를 짜도 안되네요ㅠㅠ
부탁드립니다..ㅠㅠ


#include<iostream>
#include<fstream>
#include<iterator>
#include<vector>
using namespace std;
#define LEFT 1
#define RIGHT 2
template<class T>
class Queue{
private:
 vector<T> v;
public:
 vector<T>&getVec(){return v;};
 void enqueue(const T & val){v.push_back(val);};
 T dequeue(){
  T temp=v.front();
  v.erase(v.begin());
  return temp;
 };
 T peek()const{return v.front();};
};
typedef struct treeNode{
 char data;
 int count;
 struct treeNode* left;
 struct treeNode* right;
}treeNode;
treeNode* createNode(const char ch)
{
 treeNode *newNode = new treeNode;
 newNode->data=ch;
 newNode->count=0;
 newNode->left=NULL;
 newNode->right=NULL;
 return newNode;
}
void level_order(treeNode *ptr)
{
 Queue<treeNode*> q;
 if(!ptr) return;
 q.enqueue(ptr);
 while(!q.getVec().empty()){
  ptr = q.dequeue();
  cout<<ptr->data<<"\t";
  if(ptr->left)
  q.enqueue(ptr->left);
  if(ptr->right)
  q.enqueue(ptr->right);
 }
}
void makeTree(Queue<char>& chQ, vector<treeNode*>& v)
{
 treeNode *c, *p;
 char ch;
 while(chQ.getVec().size()!=1){
  ch=chQ.dequeue();
  switch(ch)
  {
  case '(':
  v.push_back(createNode(chQ.dequeue()));
  break;
  case ',':
  if(chQ.peek()!='(') chQ.dequeue();
  (*v.rbegin())->count++;
  break;
  case ')':
  c=*v.rbegin();
  v.pop_back();
  p=*v.rbegin();
  if(p->count==LEFT){
    p->left=c;
  }else if(p->count==RIGHT){
    p->right=c;
  }else{
    cout<<"오류"<<endl;
  }
  break;
  default:
  break;
  }
 }
}
int main()
{
 Queue<char> chQ;
 vector<treeNode*> v;
 ifstream ifd("inputTree.txt");
 copy(istream_iterator<char>(ifd), istream_iterator<char>(), back_inserter(chQ.getVec()));
 makeTree(chQ, v);
 level_order(*v.begin());
 return 0;
}

추천 2 비추천 0

트위터 페이스북 다음요즘 싸이공감 구글 북마크 네이버 북마크
LV 1 킴수성
자료구조를 코드로 짜시는분이라면.... 하실수 있을거 같은데;;;ㅎㄷㄷ
LV 2 뭘까요7777
코드는 참고로 하고, 해당 되는 작성하려는 것을 올리시는 것이 빠를수 있습니다.
C로 그냥 짜는 것이지요...
LV 1 Manata
우선 template, class, 참조자, iostream헤더파일, cout, cin, end과 같은 것들은 c++에서 생긴 겁니다. 따라서 해당 부분을 삭제 변형해주시면 될 것 같네요. template같은 경우는 코드가 더럽겠지만 해당 자료형에 맞춰서 재정의 시켜주시고(당연히 함수 오버로딩 또한 c에서는 지원이 안되니 주의하세요.) class를 제거하고 그 class안에 있는 함수와 변수를 분리하셔서 전역으로 빼든, 지역으로빼든 해주셔야겠네요. 참조자의 경우 포인터로 바꿔주시고 iostream은 stdio.h로 바꾸고 해당하는 출력입력 함수인 cout과 같은 것들을 거기에 맞게 printf, scanf와 같이 바꿔주세요.
LV 2 까제미
ㅋㅋ
LV 2 초록개골이
저게 므래요????
LV 2 천하무적향…
트리구현하시는 것 같은데, queue에 dequeue까지 쓰시는군요. 코드가 상당히 난잡하게 짜였습니다. c로 이진트리 구현은 단순히 포인터로도 node를 구현할 수 있습니다. 차라리 다시 짜보시는 건 어떨까요.
LV 2 무지개너머
뭔욕인줄 알았어염 지송..
LV 1 파이리양
씨언어 배웟는데 와 이건 복잡하다
LV 2 JKGFD
어려운거 하시네요 ㅎㅎ
LV 2 잔소리쟁이
개발자의 뇌구조는 일반인의 뇌구조와는 다르요 ^^V
LV 2 승민아빠
수식파서의 일부를 구현해 놓은 것 같네요. 코드만 봐서는 수식의 우선순위를 트리로 표현하는 거 같은데요, C를 C++로 구현하라는 숙제는 많이 봤는데 C++를 C로 구현하라는 숙제는 처음 보네요... ㅎㅎ 숙제라면 여기보다는 지식인에 포인트 두둑히 걸고 물어 보는게 답이 빠를 듯합니다.
LV 4 윙크77
복잡하네요..
LV 1 인킹
어렵네
질문게시판 게시판 게시물 목록
번호 제   목 이름 날짜 조회 추천
8748 영화 놉! 여러분들의 감상 및 해석 부탁드립니다~ (8) LV 19 시네마천국 08-23 9475 11
8747 인터넷 할인? (7) LV 2 처런자라 08-22 5135 6
8746 자급제폰 사용문의 (2) LV 6 딸기맛바나… 08-17 7183 9
8745 매수? 매도? (7) LV 19 시네마천국 08-17 6309 9
8744 와국영화를 다운로드 받을시 한글자막은 어떻게 받은수 있는지? (4) LV 5 긋데이55 08-14 5721 8
8743 Big 4 영화중 최고는? (10) LV 19 시네마천국 08-11 8279 9
8742 업로드 어떻게? (3) LV 19 시네마천국 08-10 4609 11
8741 주식좀...매수잔량? 매도잔량? (5) LV 19 시네마천국 08-08 5786 10
8740 자전거 질문 (10) LV 8 dkxmfktm 08-06 5048 8
8739 숟가락은 왜 'ㄷ'받침? (12) LV 19 시네마천국 07-30 8386 10
8738 요즘 광고도 많이 하던데 토스가 뭔가요? (8) LV 6 딸기맛바나… 07-05 8384 5
8737 유동ip 인지 고정ip 인지 구분하는방법이 있을까요? (2) LV 3 맘먹은대로 06-28 7323 8
8736 와이파이 공유기를 사려고 하는데 어떤 점을 챙겨봐야 하나요? (5) LV 6 딸기맛바나… 06-19 7535 11
8735 롤 하다가 통매음 고소당했습니다 도와주세요 (17) LV 3 안임반장1 05-22 23446 2
8734 영화 신고 사유 중에 번역기 자막도 해당되는가요? (9) LV 2 잔인한시 05-12 8498 9
8733 드레드 헤어 스타일 (5) LV 8 dkxmfktm 05-08 7540 8
8732 불과 몇 년 전까지만 해도 헤비업로더였는데 (1) LV 2 잔인한시 05-07 8331 14
8731 핸드폰 질문 드려요 (5) LV 8 dkxmfktm 04-20 7219 9
8730 모둠? 모듬? (11) LV 15 시네마천국 04-16 6878 13
8729 신고하기 취소는 어떻게 하는지요? (3) LV 1 구련보등 04-14 4942 10
8728 우리들의 블루스 1화에서 나온 음악 (7) LV 8 dkxmfktm 04-12 6029 9
8727 혹시 공CD 가운데 구멍 (7) LV 8 dkxmfktm 04-06 11477 8
8726 유료징수 (5) LV 5 아호소가아 03-29 6827 6
8725 애니 에서 (3) LV 8 dkxmfktm 02-24 7939 7
8724 제가 카톡을 잘몰라서 (7) LV 8 dkxmfktm 02-13 9879 9
8723 혹시 이빨 하나 빼보신분 답변 감사 술담배 언제 가능한가요 ?? (10) LV 6 kinh00 02-09 12267 12
8722 토렌토 다운 받는법 알려주세요 (3) LV 3 허리케인456 02-09 6917 9
8721 공시디 입니다 시디 뒷면 기스난거 뭐로 지우면 잘지워지나요 ??? (7) LV 6 kinh00 02-08 6761 3
8720 제 지인이 이제서야 (2) LV 8 dkxmfktm 02-08 5338 5
8719 3차백신 예약 취소나 변경이 안되요 (2) LV 2 처런자라 01-27 6591 7
광고 · 제휴 문의는 이메일로 연락 바랍니다.  [email protected]   운영참여·제안 | 개인정보취급방침
Copyright © www.uuoobe.com All Rights Reserved.