홈으로...

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

  • LV 1 zenojm
  • 비추천 0
  • 추천 2
  • 조회 3347
  • 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 인킹
어렵네
질문게시판 게시판 게시물 목록
번호 제   목 이름 날짜 조회 추천
알림 질문하기시기 전에 읽어주세요!!! (292) LV admin 허니스 10-09 76487 160
9022 예능 LV 2 천기루 11:35 11 0
9021 BTS 아리랑 앨범 구할수있을까요? LV 1 EsLee 09-03 40 0
9020 블러드샷 토렌트 부탁드립니다. LV 1 호꾸 09-03 36 0
9019 유유베 포인트 모아서 어디다가 쓰나요? (5) LV 1 도덜 08-30 196 4
9018 산돌체 구합니다. LV 2 yunlee1 08-14 248 1
9017 우리나라에서 중국서버 접속해서 게임할수있도록 IP서비스하는 vpn 사용하고 계신분… LV 2 라면나라 07-14 632 2
9016 아주 예전에 음악파일[6CD Flac] 받아놓고 비밀번호를 잊었는데 비번 알 수있… LV 1 양양치기 07-03 799 2
9015 글쓰기오류어찌해결하나요 (1) LV 1 zoan1212 07-03 335 2
9014 자막파일이 열리지 않아요? LV 6 퓨전맨 06-28 467 2
9013 토렌트 다운에 대해 궁금한것이 있어 선배님들의 말씀 듣고 싶습니다. (1) LV 1 호프로 06-26 1089 2
9012 스마트폰 쓰시는분들 문의드립니다. (1) LV 2 긔여분호야 06-24 430 2
9011 가입후 24시간 글쓰기 오류 (7) LV 1 쿠마1981 06-20 359 3
9010 애니메이션 안올라오는데...무슨일있나요? LV 5 accboy 06-20 423 2
9009 픽팍쓰는데 궁금증이 생겼어요 LV 2 감빠라오 05-27 804 2
9008 한글 오피스 이런 건 LV 2 뭘로하지모… 05-26 790 5
9007 하트시그널시즌5 5화만 없는데 올려주실분 ㅠ (1) LV 2 druid 05-26 508 1
9006 예능 좀 1080 p 로 부탁드려요 (1) LV 2 친칭친칭 05-24 562 2
9005 자료 요청 후 채택할 수 없는 경우 (3) LV 1 uke 05-19 522 6
9004 벨드 (bl) 갖고 계신분 계실까요?? (2) LV 2 뭘로하지모… 05-09 469 2
9003 유유베 출석체크 모바일에서 하기 (3) LV 3 이하늘님 05-05 514 6
9002 자료 요청했던글 오래된거 삭제했더니 (2) LV 1 우성바라기 04-21 763 7
9001 자료요청 하고싶은데 포인트가 없네요 ㅠ (2) LV 1 도돌이도돌… 04-05 706 3
9000 오늘의 TOP 100_2026년 04월 01일 대한민국 [FLAC+MP3].zip (4) LV 2 jins 04-03 2637 5
8999 3월부터 다운을 하려면 안되고있어요 (7) LV 2 긔여분호야 03-12 2058 3
8998 모바일로 할때는 유유베 다운로드가 되는데 (4) LV 2 맛잇는치느 03-07 1078 1
8997 유유베 다운로드창이 안열립니다! 해결방법좀 알려주세요.형님들!! (10) LV 9 밀양아줌메 03-05 2150 2
8996 추천 할만한 게임 있으시면 어떤게 있는지 알려 주세요. LV 2 poosvvjk 03-03 653 1
8995 요즘엔 애니 완결 묶음은 안올라 오나요? LV 2 musidie 03-02 573 1
8994 노래자랑 LV 2 대그니 03-01 469 3
8993 간혹 가다가 드라마에 여러 음성 있는 게 있던데 LV 1 뭘로하지모… 02-23 521 1
광고 · 제휴 문의는 이메일로 연락 바랍니다.  [email protected]   운영참여·제안 | 개인정보취급방침
Copyright © www.uuoobe.com All Rights Reserved.