单链表的“指定位置插入”算法代码

【单链表的指定位置插入算法代码】

#include 
using namespace std;

struct LNode {
    char data;
    LNode *next;
};
typedef struct LNode *LinkList;

void Tail_Insert(LinkList &L, int n) {
    L=new LNode;
    L->next=NULL;
    LinkList r=L;

    for(int i=0; i>p->data;
        p->next=NULL;
        r->next=p;
        r=p;
    }
}

//在pos位置插入元素(从1开始计数)
void Insert_At_Pos(LinkList &L, char val, int pos) {
    LinkList p=L;
    for(int i=1; p && inext;
    }
    if(!p) return;

    LinkList s=new LNode;
    s->data=val;
    s->next=p->next;
    p->next=s;
}

void Print_List(LinkList L) {
    LinkList p=L->next;
    while(p) {
        cout<data<<" ";
        p=p->next;
    }
    cout<>n;
    Tail_Insert(L,n);
    //Print_List(L);

    cin>>val>>pos;
    Insert_At_Pos(L,val,pos);
    Print_List(L);

    return 0;
}



/*
in:
5
a b c d e
X 3

out:
a b X c d e
*/



【参考文献】
头插法:https://blog.csdn.net/hnjzsyjyj/article/details/120285274
尾插法:https://blog.csdn.net/hnjzsyjyj/article/details/120285300




 

你可能感兴趣的:(信息学竞赛,#,线性表,单链表)