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

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

时间:2016-10-23 14:48:36      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:--   for   #endif   listt   als   练习   ret   cpp   include   

//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;
}

  

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

标签:--   for   #endif   listt   als   练习   ret   cpp   include   

原文地址:http://www.cnblogs.com/cwenliu/p/5989757.html

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