链式存储结构
双向链表是在单链表的每个结点中,再设置一个前驱结点的指针域
|
1 2 3 4 5 6 7 |
//结构 typedef struct DulNode { ElemType data; struct DulNode * prior;//直接前驱 struct DulNode * next;//直接后继 } DulNode,*DuLinkedList; |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
//双向链表插入元素 int InsertLinkElem(LinkedList * L,int i,ElemType e) { int j; LinkedList p,s; p = *L; j = 1; while(p && j < i) { p = p->next; ++j; } if(!p || j > i) return 0; s = (LinkedList)malloc(sizeof(Node)); s->data = e; s->prior = p; s->next = p->next; p->next->prior = s; p->next = s; return 1; } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//双向链表删除元素 int DeleteLinkElem(LinkedList * L,int i,ElemType * e) { int j; LinkedList p; p = *L; j = 1; while(p && j < i) { p = p->next; ++j; } if(!(p->next) || j > i) return 0; p->prior->next = p->next; p->next->prior = p->prior; free(p); return 1; } |
声明:本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 链表相关09/12
- ♥ 大话数据结构_算法相关&&AVL&&B树相关02/20
- ♥ 大话数据结构_赫夫曼树与应用01/11
- ♥ 大话数据结构_栈_应用11/01
- ♥ 大话数据结构_树森林二叉树转换与遍历01/10
- ♥ 大话数据结构_二叉树11/03
热评文章
- 大话数据结构_基础概念 0
- 栈队列相关 0
- 大话数据结构_树森林二叉树转换与遍历 0
- 红黑树 0
- 大话数据结构_赫夫曼树与应用 0
- 大话数据结构_线索二叉树 0