双链表插入(后插前插)删除完整

    科技2023-12-16  100

    双链表插入(后插前插)删除完整 值查 跳出的位置是当前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; }

    Processed: 0.016, SQL: 8