双链表插入(后插前插)删除完整 值查 跳出的位置是当前p的位置
NODE zhifind(NODE headnode) { int x,i,e; NODE p = headnode->next; printf("请输入查询的数\n"); scanf("%d",&i); while(p && i!= p->data) { p = p->next; } if(!p) { printf("失败\n"); } else { printf("成功\n"); return p; } }位置查 跳出的位置为p的当前位置
NODE weizhifind(NODE headnode) { int x,i,e; NODE p = headnode; printf("请输入位置\n"); scanf("%d",&i); int j = 0; while(p && j<i) { p = p->next; j++; } if(!p || j>i) { printf("失败\n"); } else { printf("成功\n"); return p; } }插入 双链表中值查和位置查跳出的p都是一样的,但是后插和前插的方式是不一样的 插入 后插
void houinsert(NODE p) { int e; printf("请输入数据\n"); scanf("%d",&e); NODE s = (NODE)malloc(sizeof(lnode)); s->data = e; s->pri = p; s->next = p->next; p->next->pri = s; p->next = s; }前插
void qianinsert(NODE p) { int e; printf("请输入数据\n"); scanf("%d",&e); NODE s = (NODE)malloc(sizeof(lnode)); s->data = e; s->pri = p->pri; p->pri->next = s; s->next = p; p->pri = s; }删
void shan(NODE p) { p->next->pri = p->pri; p->pri->next = p->next; }