私はプログラミングの初心者です。私には簡単に行ってください。私は私の質問の答えを得るのが難しいと思っています。私は複雑なコードの周りに私の頭を得ることができません。いくつかの1つは簡単なコーディングで私を説明することができますどのようにgeneric list manipulation function written which accepts elements of any kind?
ありがとうございます。一般的なリスト操作関数はどのように記述されていますか?
7
A
答えて
1
異質なリストが必要なようです。下記のいくつかのポインタ:
リストノードのデータ要素を、データ型とデータのインジケータを含む汎用構造体にします。
/** This should be your data node **/
struct nodedata
{
int datatype;
void *data;
};
/** This should be your list node **/
struct listnode
{
struct nodedata *data;
struct listnode *next;
};
上記の構造を使用すると、さまざまな種類のデータを保存できます。 比較関数に関数ポインタを使用するか、データ型に応じて異なる関数を呼び出します。
+1
ありがとう。あなたの時間+1。 – Korhan
1
これは通常、ボイドポインタを使用して行われます:彼らは一般的に実装できるように
typedef struct node {
struct node *next;
void *data;
} node;
node *insert(node *list, void *data) {
}
node *delete(node *list, node *to_delete) {
}
な操作関数は、データの実際の型に依存しません。たとえば、あなたは、上記のデータフィールドのデータ型の構造体を持つことができます。
typedef struct data {
int type;
void *data;
} data;
/* .... */
data d;
d.type = INT;
d.data = malloc(sizeof(int));
node n = {NULL, (void*)&data);
+0
ありがとうございます。あなたの時間+1。 – Korhan
関連する問題
- 1. 一般的な匿名メソッドはどのように記述できますか?
- 2. ジェネリック関数の一般的な操作
- 3. 一般的なstd :: vector push_backのテンプレート関数の記述方法?
- 4. 一般 - 関数はどのようにメモリに表されていますか?
- 5. C++の一般的な(ほぼ)自己記述的なパラメータとGUIが結合されていますか?
- 6. MVC - 一般的な操作
- 7. 適用される操作で一般的な錆関数を作成するにはどうすればよいですか?
- 8. 一般的なネストされたモナド操作ですか?
- 9. Span <T>によってどのような一般的な操作を効率化できますか?
- 10. どのようにそのパラメータを破棄する一般的なvariadicラムダを記述するのですか?
- 11. 記載されている数学関数の一般名は何ですか
- 12. 一般的なタグの数で注文された関連ブログ記事を一覧表示するにはどうすればよいですか?
- 13. Cでリンクリストの汎用検索機能を記述していますか?次のように私はC. 機能で、リンクされたリストに、一般的な検索機能を記述しようとしています
- 14. C#の一般的な操作のコスト?
- 15. 一般的なファイルストリームの操作
- 16. シーケンスの一般的な操作
- 17. 矢線のカーディナリティはどのように記述されていますか?
- 18. dataGridView1は一般的なリストに接続していますか?
- 19. このクラスのこの関数はどのように記述しますか?
- 20. 関数記述子はどのように機能しますか?
- 21. 異なるクラスの一般的な汎用関数を書くにはどうすればいいですか?
- 22. スワップ関数と一般的な関数
- 23. この再帰的なMySQLプロシージャはどのように記述しますか?
- 24. クロスプラットフォームのモバイルC++ SDKはどのようにして一般的にどのように動作しますか?
- 25. getattr()のように動作する関数シグネチャを記述できますか?
- 26. これはVB.NETでどのように記述しますか?
- 27. 設定された一般的な関係を修正するにはどうすればいいですか?
- 28. 一般的なリストの値を合計するにはどうすればよいですか?
- 29. (トレースする)ローカル関数をどのように記述しますか?
- 30. アレイは一般的にどのように低レベルで動作しますか?
Cジェネリックプログラミングのための非常に良い言語ではありません、残念ながら – Pubby
この[BOOK](http://www.cs.rit.edu/ 〜ats/books/ooc.pdf)もお手伝いします。[code](http://www.linuxcandy.com/2011/11/week-4-introduction-to-generic.html) –
@GrijeshChauhanありがとうあなたは大変 – Korhan