引言
在编程中,我们有时需要根据输入执行不同的操作,而这些操作涉及到数字列表,并且每个操作可能具有不同数量的参数。本文将介绍如何优化和扩展代码,以便更好地处理这种情况。
问题描述
当前遇到的问题是需要根据输入执行不同的操作,操作涉及数字列表,而每个操作的参数数量不同。
具体而言,我们需要根据以下操作进行处理:
- “H”:在数字列表的头部插入一个数字。
- “I”:在指定位置插入一个数字。
- “D”:删除指定位置的数字。
优化前的代码
switch(a[0]){
case 'H':
head_insert(a[2]);
cnt ++;
break;
case 'I':
insert(a[2] , a[4]);
cnt ++;
break;
case 'D':
remove(a[2]);
cnt --;
break;
}
上述代码使用了switch
语句,根据输入的 首字符 执行相应的操作。虽然这种方法可以实现逻辑分支,但对于操作涉及到参数操作时不太方便。
优化后的代码
通过改进代码结构,可以更好地处理不同操作和参数的情况。
if(op == 'H'){
cin >> x;
head_insert(x);
}
else if(op == 'I'){
cin >> k >> x;
insert(k - 1 , x);
}else{
cin >> k;
if(k == 0) head = ne[head];
remove(k - 1);
}
在优化后的代码中,首先判断操作类型
,然后根据不同操作进行相应的处理。
这种方式使得根据操作选择输入参数更加方便。