首页 > 其他 > 详细

数据结构—单链表的基本操作

时间:2021-05-25 09:22:11      阅读:33      评论:0      收藏:0      [点我收藏+]
#include<iostream>
using namespace std;

//单链表的节点定义
typedef struct LNode {
    int data;
    struct LNode *next;
}LNode, *LinkList;  //LinkList 等价于 LNode*, LinkList强调这是链表,LNode强调这是节点

//按位序插入(带头节点)
bool ListInsert(LinkList &L, int i, int e)
{
    if (i<1) return false;
    LNode *p = L;
    int j = 0;
    while (p!=null && j<i-1){  //循环找到第i-1个节点
        p = p->next;
        j ++;
    }
    return InsertNextNode(p, e);  //指定节点的后插
}

//指定节点的后插操作:时间复杂度O(1)
bool InsertNextNode(LNode *p, int e)
{
    if (p == null) return false;
    LNode *s = (LNode*)malloc(sizeof(LNode));
    s->data = e;
    s->next = p->next;
    p->next = s;
    return true;
}

//指定节点的前插操作:时间复杂度O(1)
bool InsertPriorNode(LNode *p, int e)
{
    if (p == null) return false;
    LNode *s = (LNode*)malloc(sizeof(LNode));
    s->data = p->data;
    s->next = p->next;  //将p中元素复制到s中
    p->next = s;  //新节点s连接到p之后
    p->data = e;  //将p中元素覆盖为e
    return true;
}

int main()
{
    return 0;
}

数据结构—单链表的基本操作

原文:https://www.cnblogs.com/wangshx666/p/14806963.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!