C/C++の宿題を片付けます 59代目
■ このスレッドは過去ログ倉庫に格納されています
0353デフォルトの名無しさん
2006/01/30(月) 12:34:09[2] 問題文(含コード&リンク):
リストの n 番目のセル(ただし、先頭を0番目とする)を削除する関数 delete() は以下のように定義される。関数 insert(), delete() を使用して実行結果と同じリスト操作を実現するプログラムの main()関数を作成しなさい。
実行例中のdelete[4]、insert[3,58]などはprintf()で表示すること。
・関数定義
void delete( struct cell **plist, int n )
/*
plist : リストの先頭を示すポインタのアドレスを示すポインタ
n : リストの先頭から数えた削除するセルの番号
*/
{
int i;
struct cell *p;
if( n<0 ) {
printf("Error: cell(%d) doesn't exist.\n", n);
exit(1);
}
for(i=0; i<n; i++) {
if ( *plist == NULL ) {
printf("Error: cell(%d) doesn't exist.\n", i);
exit(1);
}
plist = &((*plist)->link);
}
if ( *plist == NULL ) {
printf("Error: cell(%d) doesn't exist.\n", i);
exit(1);
}
p = *plist;
*plist = p->link;
free( p );
}
■ このスレッドは過去ログ倉庫に格納されています