单链表C/C++实现

来源:互联网 发布:戴森无叶风扇 知乎 编辑:程序博客网 时间:2024/04/30 15:23
#include <iostream>using namespace std;const int N = 10;typedef int ELEMTYPE;typedef struct Node{        ELEMTYPE data;        Node *next;}LNode,*LinkList;void initLinkList(LinkList &L);int insertList(LinkList &L,int index, ELEMTYPE e);int deleteList(LinkList &L, int index,ELEMTYPE &e);void printLinkList(LinkList &L);int main(){    LinkList L;    initLinkList(L);    for(int i=1;i<=N;i++)    {        insertList(L,i,i);    }    printLinkList(L);    return 0;}void initLinkList(LinkList &L){    L = new LNode;    L->data = 0;    L->next = NULL;}int insertList(LinkList &L,int index, ELEMTYPE e)//插入到第index个元素前面{    if(index<1 || index>(L->data+1))        return 0;    LNode *p = L;    int num = 0;    while(num<index-1)    {        p = p->next;        num++;    }    LNode *q = new LNode;    q->data = e;    q->next = p->next;    p->next = q;    L->data ++;    return 1;}int deleteList(LinkList &L, int index,ELEMTYPE &e){    if(index<1 || index>L->data) return 0;    LNode *p = L;    int num = 0;    while(num<index-1)    {        p = p->next;        num++;    }    LNode *q = p->next;    e = q->data;    p->next = q->next;    delete q;    return 1;}void printLinkList(LinkList &L){    LNode *p = L;    while(p->next)    {        p = p->next;        cout<<p->data<<"\t";    }    cout<<endl;}
0 0
原创粉丝点击