Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語でスタックの概念を説明する


データ構造は、構造化された方法で編成されたデータのコレクションです。線形データ構造と非線形データ構造の2種類に分類されます。

C言語でスタックの概念を説明する

線形データ構造 −ここでは、データは線形に編成されています。

例-配列、構造、スタック、キュー、リンクリスト。

非線形データ構造 −ここでは、データは階層的に編成されています。

例-ツリー、グラフ、セット、テーブル。

C言語でのスタック

これは線形データ構造であり、データは一方の端でのみ挿入および削除されます。

操作

  • プッシュ–要素をスタックに挿入します。
  • ポップ–スタックから要素を削除します。

C言語でスタックの概念を説明する

C言語でスタックの概念を説明する

C言語でスタックの概念を説明する

C言語でスタックの概念を説明する

C言語でスタックの概念を説明する

C言語でスタックの概念を説明する

削除された要素=50Item=a [top] top-
  • pop()、pop()、pop()、pop()
削除された要素=40削除された要素=30削除された要素=20削除された要素=10
  • ポップ()

フロー下のスタック

条件

  • スタックオーバーフロー-要素をフルスタックに挿入しようとしています。

  • フロー中のスタック-空のスタックから要素を削除してみてください。

プッシュ()、ポップ()、ディスプレイ()のアルゴリズム

それぞれのアルゴリズムは次のとおりです-

プッシュ()

  • スタックオーバーフローを確認します。
 if(top ==n-1)printf( "stack over flow"); 
  • それ以外の場合は、要素をスタックに挿入します。
 top ++ a [top] =item 

ポップ()

  • スタックのアンダーフローを確認します。
 if(top ==-1)printf( "stack under flow"); 
  • それ以外の場合は、スタックから要素を削除します。
 item =a [top] top-

表示()

  • スタックフローを確認します。
 if(top ==-1)printf( "スタックが空です"); 
  • それ以外の場合は、以下のアルゴリズムに従ってください-
 for(i =0; i  

以下は、配列を使用してスタックを実装するためのCプログラムです-

 #include  #include  int top =-1、n、a [100]; main(){int ch;ボイドポップ();ボイド表示(); clrscr(); printf( "スタックのサイズを入力してください"); scanf( "%d"、&n); printf("スタック実装\n"); printf("1。プッシュ\n"); printf("2。ポップ\n"); printf("3。終了\n"); do {printf( "Enter ur choice"); scanf( "%d"、&ch); switch(ch){case 1:push();画面 ( );壊す;ケース2:プッシュ();画面 ( );壊す;ケース3:終了}} while(ch> =1 | | ch <=3); getch();} void push(){int item; if(top ==n-1)printf( "stack over flow")else {printf( "挿入する要素を入力してください")scanf( "%d"、&item); top ++; a [top] =item; }} void pop(){int item; if(top ==-1); printf( "stack under flow"); else {item =a [top];上 -; printf( "deleted element =%d"、item);}} void display(){int i; if(top ==-1)printf( "stack is empty"); else {printf( "スタックの内容は"); for(i =0; i  

出力

上記のプログラムを実行すると、次の結果が得られます-

スタックのサイズを入力=5[ユーザーが指定]スタックの実装1。プッシュ2.ポップ3.exitEnterur choice:1 [ユーザーが指定]挿入する要素を入力します:10スタックの内容を入力します:10 urの選択を入力します:1挿入する要素を入力します:2スタックの内容を入力します:10 20ur choiceを入力します:2Deleted element =20スタックの内容は次のとおりです。10urの選択を入力してください:2削除された要素:10スタックの内容は次のとおりです:スタックは空ですurの選択を入力してください:2スタックのアンダーフロー。 
  1. C言語でのポインタアクセスの概念を説明する

    ポインタは、他の変数のアドレスを格納する変数です。 ポインタの宣言、初期化、アクセス 次のステートメントを検討してください- int qty = 179; ポインタの宣言 int *p; 「p」は、別の整数変数のアドレスを保持するポインタ変数です。 ポインタの初期化 アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。 int qty = 175; int *p; p= &qty; 文字列の配列内の要素にアクセスする際にポインタがどのように役立つかの例を考えてみましょう。 このプログラムでは、特定の場所に存在する要素にアクセスしようとしています。操

  2. C#でクラスの概念を説明する

    クラスは、C#の必須タイプの1つです。クラスは、問題のドメインに関連するオブジェクトの青写真と考えることができます。これは、オブジェクトを作成するためのテンプレートであり、このクラスから作成されたオブジェクトのセットによって共有される構造と動作を定義します。簡単に言うと、クラスはCookieカッターであり、オブジェクトはCookie自体です。 クラスは、オブジェクト指向プログラミングの重要な概念であるカプセル化も可能にします。これは、データとデータを処理する操作を1か所で組み合わせ、そのオブジェクトのユーザーにシンプルなAPIを提供することを意味します。クラスを使用すると、データをカプセル化