高效面試之雙向迴圈鍊錶操作

2021-06-13 13:31:38 字數 1200 閱讀 3698

#include #include typedef struct dulnode *node;

//定義結點

struct dulnode;

/*建立鍊錶 */

node creatlist()

head->proir=newnode;//迴圈鍊錶,頭的前驅指向尾

newnode->next=head;//尾的後繼指向頭

} return head;

}/*輸出鍊錶內容*/

node printlist(node head)

else }

}/* 查詢鍊錶*/

node searchlist(node head)

else

p=p->next;

} if(flag==0)

printf("鍊錶無此編號!\n");

/*另一種迴圈方法*/

/*for(p;p->num!=n&&p!=head;p=p->next);

if(n==p->num)

printf("查詢的編號和數值為:%d,%d \n",p->num,p->data);

else

printf("未找到相關資料!\n");

*/ }

return head;

}/*刪除鍊錶*/

node dellist(node head)

else

p=p->next;

}} return head;

}/*新增結點*/

node insertlist(node head)

else

p=p->next;

} if(flag==0)

printf("編號沒有找到\n");

} return head;

}/*修改結點*/

node modifylist(node head)

else

p=p->next;

} if(flag==0)

printf("鍊錶無此編號!\n");

雙向迴圈鍊錶基本操作

include include include typedef struct node linklist void clear 清屏 linklist init doublelinklist 初始化雙向迴圈鍊錶 void creat doublelinklist linklist 建立雙向迴圈鍊錶 ...

面試 雙向迴圈鍊錶求深度

今天面中興,題目是求雙向迴圈鍊錶的深度,發現還是不太會,回來敲了一遍。思路是迴圈便利直到尾節點,尾節點的標誌是,其下乙個節點是頭結點。include include typedef enum bool bool typedef struct bilistnode bl node bool inser...

雙向鍊錶和雙向迴圈鍊錶

和單向鍊錶相比,多了乙個前驅結點。如果他為空,那麼next和prior都指向自己。而對於雙迴圈鍊錶,只需要最後乙個元素的next指向head next,head next的prior指向最後乙個節點即可。新節點s插入鍊錶,s next給p結點,s prior給p prior,然後,p prior n...