goodrich거는 다괜찮은데 그래프쪽이 부실하더라구요 거의 수도코드정도이고

아니면 stl만큼 복잡하진(template에 template인자라던지 , 템플릿인자가 4~5개라던지) 않고 조금 일반인을 위한 읽기쉬운 코드나 오픈소스있을까요....

vertex나 edge담는 컨테이너별로 그래프가 달라지긴하지만...너무괴로울것같네요 

vertex를 map에담아 key(Vertex이름)와 elem(Vertex정보)을 넣고 구현한다던지(ex) insertEdge("bob","daniel",가중치(elem))...이라던지

Graph는 변수로 가중치가 있는 Edge와 아닌 Edge모두 받을수있다던지 :decorator패턴을쓸수도있겠고 아예 따로구현할수도있겠고... 가중치그래프만이 크루스칼이나 다익스트라 함수쓸수있으니...


제가바라는건 너무 깊이 들어간걸까요


아그리고 알고리즘 사이트 문제풀이할때보면 다들 전역변수써서 남발하거나 괴상망측한 변수명 +괜한코드 압축하여 숏코딩 등... 빨리푸는게 그렇게 중요한가요....? 음... 회사입사문제할땐 그렇게 해야 빨리풀기야할텐데 다들어떻게 생각하시나요... 이제막 알고리즘 사이트가서 DFS BFS문제풀었는데 1시간넘게 클래스구현해서 만들었는데 다른사람들은 전역변수쓰고 몇줄안되는 코드로 푼거보니 조금 회의감이 들기도하네요...


주저리주저리 찡찡댔지만 요약은 책추천좀해주세요!!

자료구조 설계 대한 자세한 책이 있을까요(조금 복잡한 AVL이나 RB-tree graph등이 자세했으면 좋겠습니다.....)


아그리고 template<E,V>이런식으로 어떠한 E(엣지),V(정점)도 받을수있는 템플릿선언할때

E.fnc 혹은 V.fnc@@@@이부분에서 E나 V는 지금이시점에선 뭔지를 모르니까 어시스턴스가 함수같은거 못잡아주는데 매번 제가짠 adt함수들 보면서 할수도없고 오타날수도있는거고 ..잡아주게 하는 방법이있나요?

typedef로 구현하기도 불편하고 편한방법이 있을까요