C言語で、リストに削除したり挿入したりするプログラムがわかりません。。
特に、リストの終端を探し、値を挿入、もしくは値の削除の処理がわからないです。。、
c
1#include <stdio.h> 2main() 3{ 4 int data[6],next[6]; 5 int ope,p,i,j; 6 for(i=0;i<6;i++) 7 { 8 data[i]=-999; 9 next[i]=-1; 10 } 11 for(i=1;i<6;i++) 12 { 13 printf("¥ninput 1(insert) or 0(delete) : "); 14 scanf("%d",&ope); 15 16 if(ope==1) //値の挿入 17 { 18 p=0; 19 while(ここの条件がわかりません。。) 20 { 21 p=next[p] 22 } 23 24 printf("input data[%d] : ",i); 25 scanf("%d",&data[i]); 26 } 27 //値を挿入するコードを書く 28 if(ope==0) //値の削除 29 { 30 printf("input delete forward No. : "); 31 scanf("%d",&p); 32 } 33 34 // 結果の出力 35 for(j=0;j<=i;j++) 36 { 37 printf("%4d",j); 38 } 39 printf("\n"); 40 for(j=0;j<=i;j++) 41 { 42 printf("%4d",data[j]); 43 } 44 printf("¥n"); 45 for(j=0;j<=i;j++) 46 { 47 printf("%4d",next[j]); 48 } 49 } 50}
C言語の質問ならC♯タグは不要です。
リストと言うと一般的に構造体(struct)を用意し、それを要素として挿入、削除するようなコード例が多いですが、本質問での「リスト」では、
int data[6], next[6];
のデータ構造、内容としてどのようなことを想定されていますか。この時点で認識があいまいと言うことはありませんか。
> ここの条件がわかりません。。
おそらく next[] というデータがリストの構造を示す物であろうと想像しますが,
まずはこのデータの仕様をあなたが説明しない限り,話が進まないように思うのですが,どうなんでしょう?
最初にnext[]の6個の要素全ての値を -1 にしているのは,何かしらの仕様に従ってのことであろうと思うのですが.
リストにいくつかのデータが存在する状態の data[] と next[] の要素の値を例示する等できませんかね.
配列でリスト処理をやるとは、昔のFortranでのリスト処理みたいですね。
テキストを変えた方が良いかもしれません。
while()の括弧の穴埋め問題なのかと思ったけど、全体的にボロボロですね。
括弧内に何を書いても駄目です。
どういう入力に対してどういう出力がされるのかの具体的な例を提示してもらえれば、
コードを示すことができるでしょう。
あなたの回答
tips
プレビュー