单链表问题:同一函数如何输出的不同数据成员?
- C/C++ code
typedef struct node{ TCHAR *data; TCHAR *type; BOOL isClear; struct node *next}BOOL EnumerateNodeVal(node* list){ struct node *p; p = list; while( p != NULL ) { MessageBox(NULL,p->data,"LinkListVal",MB_OK); p = p->next; } return TRUE;}
在遍历的时候,能不能实现根据不同需求来输出指定数据成员,比如:
将函数定义为BOOL EnumerateNodeVal(node* list,?)//不知道如何定义,用“?”代替
然后根据“?”,选择输出 p->data 或 p->type 。
[解决办法]
那就传参数进来,用switch语句呗。
[解决办法]
自定义一个 type嘛
比如 int type 0 表示数据 1 表示类型
调用的时候传个值,函数里面判断一下这个值 是 0 还是 1 就对应输出就是了
[解决办法]
- C/C++ code
BOOL EnumerateNodeVal(node* list,int index){ struct node *p; p = list; while( p != NULL ) { switch(index) { case 0: MessageBox(NULL,p->data,"LinkListVal",MB_OK); break; case 1: MessageBox(NULL,p->type,"LinkListVal",MB_OK); break; } p = p->next; } return TRUE;}
[解决办法]
如果觉得不够直观,可以使用enum来定义。