(c++)数据结构顺序表编码练习

//list.h

#ifndef LIST_H
#define LIST_H

class List
{
public:
    List(int size);
    ~List();
    void ClearList();
    bool ListEmpty();
    int ListLength();
    bool GetElem(int i,int *e);
    int LocateElem(int *e);
    bool PriorElem(int *currentElem,int *preElem);
    bool NextElem(int *currentElem,int *nextElem);
    void ListTraverse();
    bool listInsert(int i,int *e);
    bool ListDelete(int i,int *e);
private:
    int *m_pList;
    int m_iSize;
    int m_iLength;

};
#endif

  

//lsit.cpp

#include<list.h>
#include<iostream>
using namespace std;

List::List(int size){
    m_iSize = size;
    m_pList = new int[m_iSize];
    m_iLength = 0;
}

List::~List(){
    delete []m_pList;
    m_pList = NULL;
}

void List::ClearList(){
    m_iLength = 0;
}

bool List::ListEmpty(){
    return m_iLength == 0?true:false;
}

int List::List(){
    return m_iLength;
}

bool List::GetElem(int i,int *e){
    if(i < 0 || i >=m_iSize)
        return false;
    *e = m_pList[i];
    return true;
}

int List::LocateElem(int *e){

    for(int i = 0;i < m_iLength;++i)
    {
        if(*e == m_pList[i])return i;
    }
    return -1;
}

bool List::PriorElem(int *currentElem,int *preElem){

    int  temp = LocateElem(*currentElem);
    if(temp == -1)
        return false;
    else{
        if(temp == 0)
            return false;
        else
            *preElem = m_pList[temp - 1];
            return true;
    }
}

bool List::NextElem(int *currentElem,int *nextElem){

    int  temp = LocateElem(*currentElem);
    if(temp == -1)
        return false;
    else{
        if(temp == m_iLength - 1)
            return false;
        else
        *preElem = m_pList[temp + 1];
        return true;
    }
}

void Lisit::ListTraverse(){

    for(int i = 0;i < m_iLength;++i){
        cout<<m_pList[i];
    }
}

bool List::ListDelete(int i,int *e){
    if(i < 0 || i >= m_iLength)
        return false;
    *e = m_pList[i];

    for(k = i + 1;k < m_iLength;;++k){
        m_pList[k - 1] = m_pList[k];
    }
    m_iLength--;
    return true;
}

  

posted @ 2016-10-23 12:02  默问柳  阅读(349)  评论(0编辑  收藏  举报