【数据结构】单链表常用操作(C++)-创新互联

#includeusing namespace std;

// 链表节点
struct LinkNode
{int data;
    LinkNode* next;
};

// 头插法
LinkNode* HeadInsert()
{LinkNode *head = new LinkNode;
    head->next = nullptr;

    int iTemp = 0;
    while (cin >>iTemp)
    {LinkNode* node = new LinkNode;
        node->data = iTemp;
        node->next = head->next; // 新插入节点指向头节点所指向的位置
        head->next = node; // 头节点指向新插入节点
    }

    return head;
}

// 尾插法
LinkNode* TailInsert()
{LinkNode* head = new LinkNode;
    head->next = nullptr;
    LinkNode* tail = new LinkNode; // 创建一个尾节点
    tail = head;

    int iTemp = 0;
    while (cin >>iTemp)
    {LinkNode* node = new LinkNode;
        node->data = iTemp;
        tail->next = node; // 尾节点指向新插入节点
        tail = node; // 新插入节点作为新的尾节点
    }
    tail->next = nullptr; // 结束时尾节点置空
    return head;
}

// 指定位置插入元素
LinkNode* InsertNode(LinkNode* link, int iFlag, int Data)
{LinkNode* pre = link; // 创建一个前置节点
    for (size_t i = 0; i< iFlag; ++i)
    {pre = pre->next;
    }
    LinkNode* node = new LinkNode;
    node->data = Data;
    node->next = pre->next; // 新插入节点指向前置节点的下一节点
    pre->next = node; // 前置节点指向新插入节点

    return link;
}

// 删除指定元素
LinkNode* DeleteNode(LinkNode* link, int Data)
{LinkNode* pre = link; // 创建一个前置节点
    LinkNode* node = link->next; // 创建一个指针指向当前节点

    while (node->data != Data)
    {pre = node;
        node = node->next;      
    }
    pre->next = node->next; // 前置节点指向当前节点的下一位置
    delete node; // 释放已删除的节点

    return link;
}

// 输出测试
void PrintLink(LinkNode* link)
{LinkNode* temp = link->next;
    while (temp)
    {cout<< temp->data<< endl;
        temp = temp->next;
    }
}

int main()
{int iFlag = 2;
    int iInsertdata = 6;
    int iDeletedata = 3;
	// 测试用例:首先用尾插法创建一个链表(eg.1~5),其次在链表的第2个节点插入元素6,最后删除元素为3的节点
    PrintLink(DeleteNode(InsertNode(TailInsert(), iFlag, iInsertdata), iDeletedata));
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比中山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式中山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖中山地区。费用合理售后完善,十多年实体公司更值得信赖。
文章标题:【数据结构】单链表常用操作(C++)-创新互联
本文URL:http://scyanting.com/article/pidig.html