558 views
Consider a singly linked list having $n$ nodes. The data items $d_1, d_2, \dots d_n$ are stored in these $n$ nodes. Let $X$ be a pointer to the $j^{th}$ node $(1 \leq j \leq n)$ in which $d_j$ is stored. A new data item $d$ stored in node with address $Y$ is to be inserted. Give an algorithm to insert $d$ into the list to obtain a list having items $d_1, d_2, \dots, d_{j}, d,\dots, d_n$ in order without using the header.
recategorized | 558 views

Following $2$ lines are enough to realise above constraint :->>

1. Y->next = X-> next 2. X->next = Y

answered by Boss (22.8k points)
edited by
+1

d->next = dj->next

dj->next = d

these steps are mandatory for the algorithm :
\begin{align*} temp &= X \rightarrow next\\ X \rightarrow next &= Y \\ Y \rightarrow next &= temp \end{align*}

answered by Boss (30.8k points)
0
why are you using an extra temp ?

simply   y->next=x->next;

x->next=y;