個人財務 Cプログラミングでリンクリストを作成する方法 - Cプログラミングでダミー

Cプログラミングでリンクリストを作成する方法 - Cプログラミングでダミー

ビデオ: 【Python】英単語テストを自動で作るプログラム!! 2025

ビデオ: 【Python】英単語テストを自動で作るプログラム!! 2025
Anonim

Cプログラミングで、すでに作成したコードに2番目の構造を追加する場合は、相互にポインタを含む一連の構造体を作成します。構造体の基本データに加えて、構造体には、リスト内の次の構造体のアドレスを含むポインタが含まれています。

ポインタ名のいくつかの巧妙なジャグリングと、リストの最後を覆うためのNULLを加えれば、Aプリミティブリンクリストの例のソースコードに似たものになるかもしれません。

<! #include #include #include int main(){構造体{char symbol [5];} int量;浮動価格;構造体ストック* next;};構造体在庫*最初に;構造体在庫*現在;構造体在庫*新規; / *メモリ内の構造体を作成する* / first =(struct stock * *)malloc(sizeof(struct stock)); if(first == NULL){puts( "ある種のmalloc()エラー"); exit(1);} / *構造体データの割り当て* / current = first; strcpy(current-> symbol、 "GOOG"); current-> quantity = 100;現在の価格= 801。 19; current-> next = NULL; new =(struct stock *)malloc(sizeof(struct stock)); if(new == NULL){puts( "別のmalloc()エラー"); exit(1);} current-> next = new;現在の=新しい; strcpy(現在のシンボル、 "MSFT"); current-> quantity = 100;現在の価格= 28。 77; current-> next = NULL; / *データベースを表示する* / puts( "投資ポートフォリオ"); printf( "SymboltSharestPricetValuen");現在の=最初;現行 - >数量、現在 - >価格、現在 - >数量*現在 - >価格); current = current-> next;現行 - >数量、現在 - >価格、現在 - >数量*現在 - >価格); return(0);}

このソースコードはかなり長いですが、最初の構造にリンクされた2番目の構造を作成するだけです。ソースコードの長さがあなたを脅かさないようにしてください。

<! - 2 - >

13行目から15行目では、リンクリストのダンスに必要な標準の3つの構造ポインタが宣言されています。伝統的に、彼らは最初、現在、そして新しい名前が付けられています。構造体の4番目のメンバに挿入され、次に構造体ポインタである11行目に配置されます。

typedefを使用して、リンクリストを作成するときに新しい構造変数を定義しないでください。 Primitive Linked-Listの例ではtypedefを使用していないので、コードに問題はありませんが、多くのCプログラマーは構造体でtypedefを使用しています。注意してください!

<! - 3 - >

Line 15で使用されているnewという変数名はC ++の予約語なので、バイリンガルにするには変数名をnew_structまたはnew以外の変数に変更します。

最初の構造体が塗りつぶされると、行30はNULLポインタを次の要素に代入します。そのNULL値はリンクされたリストの終わりを覆います。

32行目は構造体を作成し、そのアドレスを新しいポインタ変数に配置します。アドレスは、38行目の最初の構造体に保存されます。これは、2番目の構造体の位置が保持される方法です。

40行目から43行目は、2行目のポインタの情報を埋め、行43の次の要素にNULL値を代入します。

リンクは構造体の内容が表示されるときに行われます。 48行目は最初の構造体のアドレスを取得します。次に、ライン54は、第1の構造内から次の構造のアドレスを取り込む。

演習1

プリミティブリンクリストの例からエディタにソースコードを入力します。それは長いですが、後でもう一度編集する必要があるので入力してください(これまで慣れていない場合)。ビルドして実行します。 配列とは異なり、リンクリストの構造体には番号が付けられません。代わりに、各構造はリストの次の構造にリンクされます。最初の構造体のアドレスを知っている限り、NULLでマークされている最後までリストを処理できます。 プリミティブ・リンク・リストの例は、繰り返しコードがたくさんあるちょっとしたソースコードを示しています。あなたのコードでこのような複数のステートメントが表示されたら、すぐに "関数"と考えるべきです。 "

より良いリンクリストの例

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include# int量;浮動価格;構造体ストック* next;};構造体在庫*最初に;構造体在庫*現在;構造体在庫*新規;構造体ストック* make_structure(void); void fill_structure(構造体のストック* a、int c); void show_structure(struct stock * struct); int main(){int x; / *データベースを表示する* / puts( "投資ポートフォリオ"); printf( "SymboltSharestPricetValuen(" SymboltSharestPricetValuen構造体ストック*構造体*構造体* a; a =(構造体のストック*構造体* ); void fill_structure(struct stock *); void fill_structure(struct malloc(););} void fill_structure(構造体在庫) printf( "Item Symbol:"); scanf( "%s"、a-> symbol); printf( "Number(%s、a - > symbol) ); showf( "%d"、&a-> quantity); printf( "株価:"); scanf( "%f"、&a-> price);} void show_structure(struct stock *

最も関連性の高いリスト( symbol、a-> quantity、a-> price、a-> quantity * a-> price)重要な点は、13行目から15行目までの3つの構造変数を使用することです:

最初に常にアドレスを含むリストの最初の構造体の常に。

currentには、作業中の構造体のアドレス、データの埋め込み、または表示された構造体のアドレスが含まれます。

  • newは、malloc()関数を使用して作成された新しい構造体のアドレスです。

  • 7行目は、株式構造をグローバルとして宣言します。これにより、さまざまな機能からアクセスできます。

  • 行25と行39の間のforループは、それらを結ぶ新しい構造を作成します。初期構造は特別なので、そのアドレスは30行目に保存されます。それ以外の場合は、make_structure()関数のおかげで新しい構造体が割り当てられます。行35では、前の構造が更新されます。現在の値は36行目まで変更されません。その前に、現在の構造体のポインタが次の構造体newのアドレスで更新されます。行40では、最後の構造体の新しいポインタをNULLにリセットすることによって、リンクされたリストの終わりがマークされます。

46行目のwhileループは、リンクされたリスト内のすべての構造体を表示します。ループの条件は、現在のポインタの値です。 NULLが検出されると、ループは停止します。

より良いリンクリストの例に示されているコードの残りの部分は、わかりやすい関数で構成されています。

演習2

より良いリンクリストの例のコードをエディタにコピーします。ビルドして実行します。

fill_structure()関数内のscanf()ステートメントに注意してください。 - >はポインタの "peeker"表記であることに注意してください。アドレスを取得するには、変数にscanf()関数の&の接頭辞を付ける必要があります。

Cプログラミングでリンクリストを作成する方法 - Cプログラミングでダミー

エディタの選択

SketchUpのステータスバー - ダミー

SketchUpのステータスバー - ダミー

SketchUpのステータスバーには、モデリング中に使用するコンテキスト情報が含まれています。モデリングウィンドウの下の狭い情報には、情報の良さが満載されています。コンテキスト固有の指示:ほとんどの場合、ここでは何をしているのかを確認するためにここでチェックします。モディファイアキー(組み合わせて使用​​するキーボードストローク)

スケッチツールにインテリジェントに反応するよう設計されたダミー

スケッチツールにインテリジェントに反応するよう設計されたダミー

ダイナミックコンポーネント(DC) SketchUpが提供する真の魔法に最も近いもの。あなたがそれらを拡大縮小するときに、伸ばしたり歪んだりするのではなく、寸法を変更するはずの部品は、他の部分はしません。

SketchUpの投影テクスチャ曲線にテクスチャを追加する方法 - 複雑な曲線に画像を描くためのダミー

SketchUpの投影テクスチャ曲線にテクスチャを追加する方法 - 複雑な曲線に画像を描くためのダミー

SketchUpのサーフェスには、このメソッドの代わりはありません。地形の塊は、複雑な曲面の良い例です - 凹凸、ねじれ、波紋、多方向。扱っているカーブが単純な押し出しよりも複雑な場合は、この画像マッピングテクニックを使用する必要があります。キー...

エディタの選択

QuickBooks 2013のアイテムリストにSales Tax ItemまたはGroupを追加する方法 - ダミー

QuickBooks 2013のアイテムリストにSales Tax ItemまたはGroupを追加する方法 - ダミー

販売税の対象となる商品を販売する場合、QuickBooks 2013請求書には、これらの売上税を請求して追跡する広告申込情報も含まれます。これを行うには、売上税明細を登録します。販売税項目を登録するには、新規項目ウィンドウを表示し、タイプ...から販売税項目を選択します。

QuickBooks 2012のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2012のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2012でサービスアイテムを使用して、サービスを表すアイテムを購入または請求します。たとえば、CPAは、個人や企業に対して納税申告書を作成します。納税申告書を準備するためにクライアントに請求する場合、納税申告書の請求書に表示される明細はサービス項目です。 ...

QuickBooks 2013のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2013のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2013のサービスアイテムを使用して、サービスを表すアイテムを購入または請求します。たとえば、CPAは、個人や企業に対して納税申告書を作成します。納税申告書を準備するためにクライアントに請求する場合、納税申告書の請求書に表示される明細はサービス項目です。 ...

エディタの選択

WordPressブログのユーザーと著者を管理する方法 - ダミー

WordPressブログのユーザーと著者を管理する方法 - ダミー

WordPressユーザーページには、あなたのブログのすべてのユーザーが表示されます。各ユーザーのユーザー名、名前、電子メールアドレス、ブログの役割、およびブログに投稿された投稿の数が表示されます。フォロワー:このデフォルトロールは、...

WordPress Permalinkをサーバーと連携させる方法 - ダミー

WordPress Permalinkをサーバーと連携させる方法 - ダミー

デフォルト以外のオプションを使用してWordPressサイトのパーマリンクの場合、WordPressは特定のルールまたはディレクティブを.txtファイルに書き込みます。あなたのWebサーバー上のhtaccessファイル。 permalinkによると、htaccessファイルはあなたのWebサーバーと交信して、パーマリンクをどのように提供すべきかを示します。

WordPressブログを修正する方法 - ダミー

WordPressブログを修正する方法 - ダミー

WordPressブログをインストールした後、それがリンクされているウェブサイトに合ったブログ。既存のテーマ(スキン)を変更したり、WordPressをインストールした後に使用できる代替語句を選択することができます。選択したテンプレートがメインWebサイトに似ていることを確認してください。ただし、WordPressは...