码迷,mamicode.com
首页 > 编程语言 > 详细

链表:用C/C++实现单链表的增删改查

时间:2020-07-07 09:54:52      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:new   col   输入   增删改   ==   数据   使用   div   理解   

最近复习了线性表,对链表这一部分遗忘最大,所以手动实现一下加深理解,附上C++代码:

#include <iostream>
using namespace std;
typedef struct LNode   //定义一个结构体作为链表结构,有指针域和数据
{
    int data;
    struct LNode* next;
}LNode,*LinkList; //将 struct LNode重命名为LinkList方便使用

void dis(LinkList l) //输出列表
{
    while (l->next != NULL)
    {
        l = l->next;
        cout << " " << l->data;
    }
    cout << endl;
}
LinkList insert(LinkList& l,int x)  //头插
{
    LNode* s = (LNode*)malloc(sizeof(LNode));
    s->data = x;
    s->next = l->next;
    l->next = s;
    return l;
}
int getNumber(LinkList l, int x)//按照值查找结点序号
{
    int i = 0;
    while (l != NULL)
    {
        i++;
        if (l->data == x)
        {
            cout << "find x=" << x<< " ,num=" << i-1<< endl;
            break;
        }
        l = l->next;
    }
    return i;
}
LNode* getElement(LinkList l, int no)//按照序号查找结点
{
    LNode*s = l->next;
    int j = 1;
    while (s->next != NULL && j < no)
    {
        s = s->next;
        j++;
    }
    return s;
}

void delect(LinkList &l, int no)//删除指定序号的节点
{
    LNode* s = getElement(l, no - 1);
    LNode* p;
    p = s->next;
    s->next = p->next;
    cout << "delect " << p->data << " success" << endl;
    free(p);
}

int main() //依次实现增,查,查,删
{
        LinkList l;
        LNode* s;
        int x;
        l = (LinkList)malloc(sizeof(LNode)); //head
        l->next = NULL;
        cin >> x;
        do
        {
            s = (LNode*)malloc(sizeof(LNode));
            s->data = x;
            s->next = l->next;
            l->next = s;
            cout << "new " << s->data << endl;
            cin >> x;
        } while (x>0);   //输入负数后停止
        dis(l);
        l = insert(l, 100);
        dis(l);
        cout << "no." << 2 << " is " << getElement(l, 2)->data<< endl;
        getNumber(l, 1);
        delect(l, 2);
        dis(l);
        return 0;
}

 

链表:用C/C++实现单链表的增删改查

标签:new   col   输入   增删改   ==   数据   使用   div   理解   

原文地址:https://www.cnblogs.com/murenma/p/13258605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!