美文网首页
顺序表链表实现

顺序表链表实现

作者: 榆杨丶 | 来源:发表于2020-06-11 15:44 被阅读0次

项目相关代码在码云托管

#include"list.h"
#include<iostream>
using namespace std;
list::list()
{
    m_pList=new Node;
    m_pList->data=0;
    m_pList->next=NULL;
    m_pLength=0;
}

bool list::IsEmpty()
{
    if(m_pLength==0)
        return true;
    return false;
}
int list::listLength()
{
    return m_pLength;
}
void list::ClearList()
{
    Node *currentNode=m_pList->next;
    while(currentNode!=NULL)
    {
        Node *temp=currentNode->next;
        delete currentNode;
        currentNode=temp;
    }
    m_pList->next=NULL;
}
list::~list()
{
    ClearList();
    delete m_pList;
    m_pList=NULL;
}
bool list::ListInsertHead(Node *pNode)
{
    Node *temp=new Node;
    if(temp==NULL) return false;
    temp->data=pNode->data;
    temp->next=m_pList->next;
    m_pList->next=temp;
    m_pLength++;
    return true;
}
bool list::ListInsertTail(Node *pNode)
{
    Node* temp=new Node;
    if(temp==NULL)
        return false;
    temp->data=pNode->data;
    temp->next=NULL;
    Node* currentNode=m_pList;
    while (currentNode->next!=NULL)
    {
        currentNode=currentNode->next;
    }
    currentNode->next=temp;
    m_pLength++;
    return true;
}
bool list::ListInsert(int i,Node* pNode)
{
    if(i<0||i>m_pLength)
        return false;
    Node* temp=new Node;
    if(temp==NULL)
        return false;
    temp->data=pNode->data;
    Node* currentNode=m_pList;
    for (int k = 0; k <i; k++)
    {
        currentNode=currentNode->next;
    }
    temp->next=currentNode->next;
    currentNode->next=temp;
    m_pLength++;
    return true;

}
bool list::ListDelte(int i,Node* pNode)
{
    if(i<0||i>=m_pLength)
        return false;
    Node* currentNode=m_pList;
    for (int k = 0; k <i; k++)
    {
        currentNode=currentNode->next;
    }
    Node* temp=currentNode->next;
    currentNode->next=currentNode->next->next;
    pNode->data=temp->data;
    delete temp;
    temp=NULL;
    m_pLength--;
    return true;
}
bool list::GetElem(int i,Node* pNode)
{
    if(i<0||i>=m_pLength)
        return false;
    Node* currentNode=m_pList;
    for (int k = 0; k <=i; k++)
    {
        currentNode=currentNode->next;
    }
    pNode->data=currentNode->data;
    return true;
}
int list::LocateElem(Node* pNode)
{
    Node* currentNode=m_pList->next;
    int count=0;
    while (currentNode!=NULL)
    {
        if(currentNode->data==pNode->data)
            return count;
        count++;
        currentNode=currentNode->next;

    }
    return -1;
}
bool list::PriorElem(Node* currentNode,Node* preNode)
{
    Node* temp=m_pList;
    while (temp->next!=NULL)
    {
        if(temp->next->data==currentNode->data)
        {
            if(temp==m_pList)
                return false;
            preNode->data=temp->data;
            return true;
        }
        temp=temp->next;
    }
    return false;
}

bool list::NextElem(Node* currentNode,Node* nextNode)
{
    Node* temp=m_pList->next;
    while (temp!=NULL)
    {
        if(temp->data==currentNode->data)
        {
            if(temp->next==NULL) return false;
            nextNode->data=temp->next->data;
            return true;
        }
        temp=temp->next;
    }
    return false;
}
void list::ListTraverse()
{
    Node* currentNode=m_pList;
    while (currentNode->next!=NULL)
    {
        currentNode=currentNode->next;
        currentNode->printNode();
    }
}

相关文章

  • 顺序表与单链表

    接口 顺序表(线性表)实现方式 单链表的节点 单链表的实现

  • 数据结构-双向链表

    (一)什么是链表? 链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序...

  • 栈的实现

    基于顺序表的栈实现: 测试代码: 基于顺序表的链表实现: 基础数据类: 测试代码: 以为这个会比链表东西会多一些,...

  • 数据结构-线性表

    [TOC] 线性表-List list是最简单的数据结构,可分为顺序表与链表,顺序表内部数据存储由数组实现,链表则...

  • 线性表之顺序表和链表(单/双链表,单/双循环链表)

    线性表按存储方式分为顺序表和链表两种,其中链表又分为单链表,循环链表,双链表,双向循环链表。 顺序表 顺序表采用顺...

  • python中的树数据结构

    线性数据中的典型顺序表和链表已经讲完: 《顺序表数据结构在python中的应用》 《python实现单向链表数据结...

  • 顺序表代码实现

    顺序表数组实现 基本操作,增删查改 顺序表的链表实现 该部分有些混乱,主要原因是在于链表有无头节点和节点从0开始计...

  • 2018-07-09顺序表实现栈

    栈的实现 ——直接用顺序表(列表list)进行 栈结构实现 栈可以用顺序表实现,也可以用链表实现。 栈的操作 St...

  • 1000_(2)单链表

    单链表的实现 虽然链表与顺序表逻辑结构都为线性表。但不同于顺序表的是,链表不需要连续的存储空间,换句话说就是不受空...

  • 数据与算法结构

    线性表 顺序表 链表(物理上离散,逻辑上连续) 链表的类别 单链表 循环链表 双链表 链表的操作 顺序表与链表的比...

网友评论

      本文标题:顺序表链表实现

      本文链接:https://www.haomeiwen.com/subject/pmvbtktx.html