You could set Prolog with graphic primitives:
Define symbols:
resistor[{a1_, a2_}] :=
Block[{d, l, res, s, t},
d = a2 - a1;
l = Norm[d];
s = a1 (1 - 2/5) + a2 2/5;
t = a1 (1 - 3/5) + a2 3/5;
res = Line[
Table[{Norm[t - s] i /16, 1/(6 l) Sin[i Pi/2]}, {i, 0, 16}]];
res = GeometricTransformation[res,
Composition[TranslationTransform[s],
RotationTransform[ArcTan @@ d]]];
{Thick, Darker[Green], Line[{{a1, s}, {t, a2}}], res}
]
capacitor[{a1_, a2_}] :=
Block[{d, l, nd, res, s, t},
d = a2 - a1;
l = Norm[d];
s = a1 (1 - 4.5/9) + a2 4.5/9;
t = a1 (1 - 5/9) + a2 5/9;
nd = l/15 RotationTransform[Pi/2][Normalize[d]];
res = Line[{{s + nd, s - nd}, {t + nd, t - nd}}];
{Thick, Darker[Green], Line[{{a1, s}, {t, a2}}], Brown, res}
]
inductor[{a1_, a2_}] :=
Block[{d, l, res, s, t, r},
d = a2 - a1;
l = Norm[d];
s = a1 (1 - 1/5) + a2 1/5;
t = a1 (1 - 4/5) + a2 4/5;
r = (Norm[s - t]/4 ) 1/2;
res = Table[Circle[{i + r, 0}, r, {0, Pi}], {i, 0, 6 r, 2 r }];
res = GeometricTransformation[res,
Composition[TranslationTransform[s],
RotationTransform[ArcTan @@ d]]];
{Thick, Darker[Green], Line[{{a1, s}, {t, a2}}], {Black, res}}
]
dc[{a1_, a2_}] := Block[{d, l, res, s, t, r}, d = a2 - a1;
l = Norm[d];
s = a1 (1 - 2/5) + a2 2/5;
t = a1 (1 - 3/5) + a2 3/5;
r = Norm[s - t]/2;
res = {Circle[{r, 0}, r], Line[{{2 r/4, r/4 }, {2 r/4, -r/4}}],
Line[{{{r/3 + r, r/4 }, {r/3 + r, -r/4}}, {{r/3 + r - r/4,
0 }, {r/3 + r + r/4, 0}}}]};
res = GeometricTransformation[res,
Composition[TranslationTransform[s],
RotationTransform[ArcTan @@ d]]];
{Thick, Darker[Green], Line[{{a1, s}, {t, a2}}], res}]
Set a new graph with Prolog:
coords = GraphEmbedding[g];
g1 = Graph[g,
Prolog -> {resistor[coords[[{4, 5}]]], capacitor[coords[[{2, 3}]]],
inductor[coords[[{1, 6}]]]}]
EdgeList[g] == EdgeList[g1]
True