홈으로...

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

  • LV 1 zenojm
  • 비추천 0
  • 추천 2
  • 조회 3213
  • 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 76285 160
9018 디스클로저데이 왜 안올라올까요? LV 1 소요스 07-18 106 0
9017 우리나라에서 중국서버 접속해서 게임할수있도록 IP서비스하는 vpn 사용하고 계신분… LV 2 라면나라 07-14 186 0
9016 아주 예전에 음악파일[6CD Flac] 받아놓고 비밀번호를 잊었는데 비번 알 수있… LV 1 양양치기 07-03 382 0
9015 글쓰기오류어찌해결하나요 LV 1 zoan1212 07-03 156 0
9014 자막파일이 열리지 않아요? LV 6 퓨전맨 06-28 218 0
9013 토렌트 다운에 대해 궁금한것이 있어 선배님들의 말씀 듣고 싶습니다. (1) LV 1 호프로 06-26 555 0
9012 스마트폰 쓰시는분들 문의드립니다. (1) LV 2 긔여분호야 06-24 250 0
9011 가입후 24시간 글쓰기 오류 (5) LV 1 쿠마1981 06-20 232 0
9010 애니메이션 안올라오는데...무슨일있나요? LV 5 accboy 06-20 269 0
9009 픽팍쓰는데 궁금증이 생겼어요 LV 2 감빠라오 05-27 628 0
9008 한글 오피스 이런 건 LV 2 뭘로하지모… 05-26 581 3
9007 하트시그널시즌5 5화만 없는데 올려주실분 ㅠ LV 2 druid 05-26 351 0
9006 예능 좀 1080 p 로 부탁드려요 (1) LV 2 친칭친칭 05-24 427 1
9005 자료 요청 후 채택할 수 없는 경우 (3) LV 1 uke 05-19 383 5
9004 벨드 (bl) 갖고 계신분 계실까요?? (2) LV 2 뭘로하지모… 05-09 368 1
9003 유유베 출석체크 모바일에서 하기 (3) LV 3 이하늘님 05-05 401 5
9002 자료 요청했던글 오래된거 삭제했더니 (2) LV 1 우성바라기 04-21 640 6
9001 자료요청 하고싶은데 포인트가 없네요 ㅠ (2) LV 1 도돌이도돌… 04-05 566 2
9000 오늘의 TOP 100_2026년 04월 01일 대한민국 [FLAC+MP3].zip (4) LV 2 jins 04-03 2184 4
8999 3월부터 다운을 하려면 안되고있어요 (7) LV 2 긔여분호야 03-12 1883 2
8998 모바일로 할때는 유유베 다운로드가 되는데 (4) LV 2 맛잇는치느 03-07 939 0
8997 유유베 다운로드창이 안열립니다! 해결방법좀 알려주세요.형님들!! (10) LV 9 밀양아줌메 03-05 1916 1
8996 추천 할만한 게임 있으시면 어떤게 있는지 알려 주세요. LV 2 poosvvjk 03-03 557 0
8995 요즘엔 애니 완결 묶음은 안올라 오나요? LV 2 musidie 03-02 488 0
8994 노래자랑 LV 2 대그니 03-01 392 2
8993 간혹 가다가 드라마에 여러 음성 있는 게 있던데 LV 1 뭘로하지모… 02-23 414 0
8992 출첵하러 오면 이게 가끔 뜨던데 왜 이러는건지요? (3) LV 2 감빠라오 02-19 636 5
8991 다운로드 티프리카에서 쇼미다운로드 하니 요렇게 나오는데 이건 어떻게 해결해야 하나… (4) LV 2 파리스정 02-14 1782 2
8990 다운로드 페이를 찾을수가 없다고 나와요 (3) LV 2 파리스정 02-14 789 2
8989 비번 찾아요ㅜ.ㅜ 멜론 (Melon) 10월 11일 실시간 Top100 [14시 … (2) LV 1 4랑해 02-07 894 0
광고 · 제휴 문의는 이메일로 연락 바랍니다.  [email protected]   운영참여·제안 | 개인정보취급방침
Copyright © www.uuoobe.com All Rights Reserved.