数据结构----双向队列

mark下双向队列,比起循环队列,遍历更加轻松愉快, 数据结构----双向队列复杂度还是O(n):

#include
#include

typedef struct Node {
int Data;
struct Node *prior, *next;
} DuNode, *DuLinklist;
DuLinklist Create_Linklist() {
DuLinklist Head = (DuLinklist) malloc(sizeof(DuNode));
Head->next = NULL;
Head->prior = NULL;
return Head;
}
void Insert_Linklist(DuLinklist Head, int num) {
DuLinklist temp = (DuLinklist) malloc(sizeof(DuNode));
if (Head->next == NULL) {
temp->Data = num;
temp->next = Head->next;
temp->prior = Head;
Head->next = temp;
}
else {
temp->Data = num;
temp->next = Head->next;
Head->next->prior = temp;
temp->prior = Head;
Head->next = temp;
}
}
//遍历到尾再往回遍历
void Foreach_Linklist(DuLinklist Head) {
DuLinklist temp = Head->next;
while (temp->next) {
printf("%d\n", temp->Data);
temp = temp->next;
}
while(temp){
printf("%d\n", temp->Data);
temp = temp->prior;
}
}
int main(void) {
DuLinklist Head = Create_Linklist();
Insert_Linklist(Head, 3);
Insert_Linklist(Head, 4);
Insert_Linklist(Head, 5);

Foreach_Linklist(Head);
}
转载请标注
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值