口コミ知恵袋(質問1)木構造について教えて下さい。

【返信】

木構造
木構造 (建築)(もくこうぞう)
木 (数学)(き)
木構造 (データ構造)(きこうぞう)
木構造 (言語)(きこうぞう)


口コミ知恵袋(質問2)木構造 (データ構造)について教えて下さい。

【返信】

木構造(きこうぞう)とは、木構造 (数学) グラフ理論の木の構造をしたデータ構造のことです。


枝でつながった二つの節点のうち、根(root)に近い方を親、葉(leaf)に近い方を子といい、同じ親を持つ節点同士を兄弟という。

コンピュータで利用する場合にはいくつかの実装方法があります。


各ノードが子ノードへのポインタのリストを持つ
各ノードが親ノードへのポインタを持つ
各ノードが親ノードへのポインタと子ノードへのポインタのリストを持つ
各ノードが長男ノードへのポインタと弟ノードへのポインタを持つ
木の各節点を一つずつ走査する方法には、以下の三つがあります。

(いずれの方法も、根から探索を始める。


口コミ知恵袋(質問3)木構造 (数学)について教えて下さい。

【返信】

『木 (数学)』より : 木構造(tree structure。
単に木(tree)とも)は、グラフ理論の用語で、単連結グラフ 連結で閉路を持たない無向グラフの事。
閉路を持たない有向グラフをダグという。

あるノードを選んで、それを固定して考えることが多い。
このとき、そのノードを根(ルート)という。
根を持つ木を単なる木と区別して根付き木という。

木 T には、次の4つの主な性質があります。


(T の辺の個数)=(T の節点の個数)- 1
:記号で表すと、 T T - 1
任意の2点 x,y に対して、x,y を結ぶ道が丁度一つあります。


T の2点を結ぶ T に含まれない辺 e に対して、T+e には e を通るただ一つの閉路があり、この閉路上の任意の辺 f に対して T+e-f は木となる。


口コミ知恵袋(質問4)木構造 (建築)について教えて下さい。

【返信】

木構造(もくこうぞう)は、木造ともいい、建築の建築構造 構造(一般構造)の一つで、主要な骨組の部材に木材を用いる構造。
構造形式は、おもに架構式であります。

次のような構法・工法があります。


木造軸組構法(在来工法)…日本の伝統的な架構式構法。

木造枠組壁構法(ツーバイフォー工法)…北米から輸入された構法。

木造パネル構法
丸太組構法
ログハウス
また、近年は木質材料を用いる建築が増えたので、これを木質構造と呼ぶことがあります。


木造教会
木造住宅
鉄筋コンクリート構造
鉄骨構造 - 鋼構造
鉄骨鉄筋コンクリート構造
建築構造 もくこうそう



■口コミ知恵袋に対して、下記の話題があります。


・5.オペレーティングシステムに関する問題です。
分かる人よろしくお願いします。
(1) ファイルは[1]や[2]を格納するための論理単位であり,ファイルシステはユーザにその[3]を提供する.(2) ファイルは[4],[5],[6]の系列などから構成され,ディスクなどの[7]に格納される.ファイルが[8]で構成されるUNIXではすべてがファイルとして扱われる.(8) ファイルがレコードで構成される場合,レコードの読み書きの単位はユーザレベルで[9],装置レベルで[10]と呼ばれる.(9) プログラムでファイルを使用する場合,[11]と[12]を用いるが,その際,最初にそのファイルに対応した[13]というシステムテーブルが生成される.ファイル操作でCPUの利用率を向上するため[14]という方法が用いられる.(10) ファイルはその構成要素であるバイトやレコード(あるいはブロック)の順番が2次記憶上の格納位置に依存する[15]と,依存しない[16]に分類される.(11) ファイル情報は2次記憶の[17]で管理されており,その情報にはフィルの名前,ファイルのサイズ,ファイルの[18]などがある.(12) ファイルにアクセスするには,まず,[19]によりディレクトリを検索し,そのファイルのエントリーを取り出す必要がある.(13) ディレクトリの操作を高速化するために様々な構造と探索法があるが,それぞれ一長一短がある.ディレクトリの構造としては[20],2分木,[21]がある.それぞれの探索法には[22],[23],ハッシュ関数などが用いられる.(14) 多くのファイルを効率よく扱うためディレクトリの階層化が行われる.Unixでは[24]が用いられ,ユーザがファイルへアクセスする場合,[25]或いは[26]でパス名を指定すればよい.(15) 2次記憶の割付けには[27]と[28]があり,前者はディスクブロックの断片化の問題を抱える.後者はその問題はないが[29]や[30]の格納に余分な領域が必要となる. 候補 統一的操作法 線形探索 バイト 保護情報 2次記憶装置 データ 逐次ファイル ファイルコントロールブロック ビット バッファリング バイト列 絶対パス 木構造ディレクトリ クローズ操作 プログラム レコード ポインタ 連続割付け ハッシュテーブル 線形リスト ファイルの名前 オープン操作 2分探索 相対パス 非連続割付け ランダムアクセスファイル 物理レコード ディレクトリ 論理レコード 索引ブロック



・C言語でツリー(木構造)を作成するプログラムを教えてください。
大学のC言語の授業で必要なのですが、以下のプログラムに悩んでいます。
毎回異なるツリーを作成するプログラムを作りたいのですが、ランダム性などの実現など、今ひとつアプローチが分かりません。
ツリーはノード数を1000個として、ノード間にランダムにエッジを付けるプログラムが作りたいと思っています。
おおまかなアルゴリズムとしては、1. 1000個のノードからランダムに1個選び、残りの999個のうちからランダムに選んだ1個のノードと繋ぐ2. 1で繋がった2個のノードからランダムに1個選び、残りの998個のうちからランダムに選んだ1個と繋ぐ3. 同様に既にエッジで繋がったノードと、まだ繋がっていないノードからランダムに1個ずつ選び、繋ぐ4. 3を繰り返し、全てのノードがエッジを持てば終了というものを考えています。
宜しくお願いします。



・Lispで横型探索のプログラムを作ろうとしているのですがどうにもできません。
縦型探索の雛型があります。
(defun depth-path (start goal tree)(depth2 (list (list start)) goal tree))(defun depth2 (open goal tree)(cond ((endp open) nil)((eq (caar open) goal) (reverse (car open)))(T (print (caar open))(depth2 (append (expand (car open) tree) (cdr open)) goal tree))))(defun expand (path tree)(mapcar (lambda (child) (cons child path))(children (car path) tree)))(defun children (node tree)(mapcan (lambda (link)(cond ((eq (car link) node) (list (cadr link)))))tree))>(setq start 'a)>(setq goal1 'g)>(setq tree '((a b) (a c) (a d) (b e) (b f) (d g) (d h) (f i) (f j)))として>(depth-path start goal1 tree)ABEFIJCD(A D G)という結果が出力されます。
木構造はaの子にb,c,dbの子にe,ffの子にi,jdの子にg,hです。
恐らくdepth2をいじるだけでできそうなんですが、難しいです。



・木構造の評価についてC言語で木構造を表現しています。
それぞれのノードについて確立と得点があり,期待値=確立×得点を求めたいです。
例:_________________0__________1____________2______3______2_____1______3このような木に対し,0→1→3=確立×得点0→1→2=確立×得点0→2→1=確立×得点0→2→3=確立×得点4つの合計で期待値を求めたいです。
再帰関数を用いて作りたいのですが,0→1→3において0→1の確立×1→3の確立×(1の得点+3の得点)となり,再帰では表すことができません。
どなたか再帰関数で表す考え方を教えていただけないでしょうか。



・木構造の水平材のうち、「桁、梁、胴差」の違いを、出来るだけわかりやすく、教えていただけませんか。
なにとぞよろしくお願い申しあげます。



・C言語で木構造を表現しています。
マロックでメモリを確保し,最後にフリーしたいのですが上手くいきません。
どなたかアドバイスをいただけないでしょうか。
struct node{___int data;___struct node *left;___struct node *right;};/* 木をフリーする関数 */void *tree_free(struct node *root){___if(root->left!=NULL) tree_free(root->left); //右足に値があるなら,右足を再帰的にフリー___if(root->right!=NULL) tree_free(root->right); //左足に値があるなら,左足を再帰的にフリー___if(root!=NULL){ ______free(root); //自分に値があるなら,自分をフリー______root=NULL; //自分を空にする___}}



・C言語で遺伝的プログラミング(GP)を利用し,sin(x)の近似を行っています。
ランダムに木構造で数式を生成し,それを個体として, 個体群を生成したいです。
以下のようにメイン関数でi=0~Nまで木を作り, それらを初期個体として残したいのですが, どのようにすればいいか,アドバイスをよろしくお願い致します。
struct node{ ___int data; ___struct node* left; ___struct node* right; }; int main(){ ___int kotai[N]; ___struct node *root; ___root=NULL; ___for(i=0;i<N;i++){ ______srand(i); ______root=tree(); //tree関数によって木を生成 ______&(kotai[N])=root; //このように配列にアドレスを入れたいけど,できません ___} return 0; }



・C言語で木構造を表わしています。
木構造をコピーしたいです。
木構造にGAを適用する予定です。
エリートに木構造をコピーしたいのですが,うまくいきません…。
以下のように書いています。
どなたかアドバイスよろしくお願い致します。
struct node{ int data; struct node* left; struct node* right; }; struct e_node{ int data; struct e_node* left; struct e_node* right; }; /* 木をコピーする関数 */ struct e_node *tree_copy(struct node *root,struct e_node *e_root){ if(root!=NULL && root->left==NULL && root->right==NULL){ e_root=(struct e_node *)malloc(sizeof(struct e_node)); e_root->data=root->data; return e_root; } else{ e_root->left=tree_copy(root->left,e_root->left); e_root->right=tree_copy(root->right,e_root->right); } }



・C言語で木構造を生成するプログラムを教えてください非終端記号(+,-,*,/)と終端記号(1~9)を組み合わせて、数式を木構造でランダムに生成したいのですが、 マロックやポインタ、再帰などがわかりません。
どなたか教えていただけませんか。



・基本情報の過去問について(分野:アルゴリズム>木構造>グラフ)-----------------基本情報の勉強をしていて、参考書を読んでも理解しきれなかったのでどなたか解説をお願いしますm(__)mグラフの分野なので、文章では説明が難しいので写真を貼り付けました。
[問題] (1番上の図)次のグラフと同形なグラフ(点の置き方を変えて描き直したグラフ)はどれか。
[解答群]ア:左上イ:右上ウ:左下エ:右下[解答]※参考書からそのまま写しますイ辺が5本出ている頂点に注目します。
5本出ていないウ,エは違います。
次に、3本出ている頂点の数を数えると、イが3本です。
[私の考え]ウ問題のグラフの、頂点1~6に、それぞれ、ウの頂点1~6が対応するのではないか、と思いました。
!が、、、解答を読んでも納得できないため、よろしくお願いします。
m(__)m



口コミ知恵袋 一覧へ


「口コミ知恵袋 TOP 30」