#PHP, 100 101 99 104 bytes
PHP, 100 101 99 104 bytes
for($p=-1;$d=$argv[++$k];+$i<$p?:$i=$p,$x>$p?:$x=$p)$r[$p+=$k&1?$d:-$d]=$d;for(;$i<=$x;)echo$r[$i++]?:_;
takes input from command line arguments; run with -nr
.
breakdown
for($p=-1; // init position
$d=$argv[++$k]; // loop $d through command line arguments
+$i<$p?:$i=$p, // 3. $i=minimum index
$x>$p?:$x=$p // 4. $x=maximum index
)
$r[
$p+=$k&1?$d:-$d // 1. jump: up for odd indexes, down else
]=$d; // 2. set result at that position to $d
for(;$i<=$x;) // loop $i to $x inclusive
echo$r[$i++]?:_; // print result at that index, underscore if empty