Insert & delte elements in doublely linked list
来源:互联网 发布:按option无法切换mac 编辑:程序博客网 时间:2024/05/20 14:20
Define a doublely linked list
typedef struct Node{ ElemType data; struct Node* prior; struct Node* next;}Node, *DLinkList;
Initialize it, insert at the end
1.创建新节点,作为头结点;
2,根据输入不断创建实体节点;
DLinkList DLinkListCrate(){ Node *p,*L,*tempNode; // 后面有malloc,所以这样定义方便 或者DLinkList P L = (Node*) malloc(sizeof(Node)); L.prior = NULL; *p = L; //如果是定义DLinkList P,此处 P= L; Element x; while(scanf("%d,&x") != EOF) { tempNode = (Node*)malloc(sizeof(Node)); tempNode.data = x, tempNode->prior = p; p->next = tempNode; tempNode->next = NULL; p = tempNode; } return L;}
Find Operation
根据值找到节点, retrun
int DLinkListFind(DLinkList L, ElemType x){ if(L == NULL) return 0; DLinkList p; p = L->next; int i=0; while(p != NULL){ i++; if(p->next == x) return i; p = p->next; } return 0;}
Delete Operation
1. 找到要删除的点
2. 如果是末尾点,只需把前指针置空;
3.如果是中间指针,前后指针各向原来方向延伸一格。
int DLinkListDelete(DLinkList L, int i){ if( NULL == L) return 0; DLinkList p; p = L->next; int j =0; while(j < i && p != NULL) p = p->next; if(p == NULL) return; else if(p->next == NULL){ p->prior->next = NULL; free(p); } else{ p->prior->next = p->next; p->next->prior = p->prior; free(p); }}
Insert Operation
1.找到位置i;
2.创建一个新节点,插入。
DLinkList DLinkListInsert(DLinkList L, int i, ElemType x){ if(NULL == L) return; DLinkList p; p = L->next; int j = 0; while(j < i ) p = p->next; tempNode = (Node*)malloc(sizeof(Node)); p->next->prior = tempNode; tempNode->next = p->next; p->next = tempNode; tempNode->prior = p;}
0 0
- Insert & delte elements in doublely linked list
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- leetcode_Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Leetcode_203_Remove Linked List Elements
- hdu1251 统计难题 字典树
- 基站定位属性
- 网络获取json解析
- Linux vi指令详解
- Winpcap 链接 VS2013 小提示
- Insert & delte elements in doublely linked list
- JDBC-Java程序向mysql中插入数据的中文乱码
- Unity3d 协程、调用函数、委托
- 21.Plus One
- Android中的Context详解
- 响应式web设计--图片大小自适应的三种方法
- c语言和c++的“&”的语言
- 【重大修改】动态时间规整(Dynamic Time Warping)
- 简单的iOS收尾式动画