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

  

时间: 2024-10-10 07:26:26

(c++)数据结构顺序表编码练习的相关文章

hrbust-1545-基础数据结构——顺序表(2)

http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1545 基础数据结构——顺序表(2) Time Limit: 1000 MS Memory Limit: 10240 K Total Submit: 412(165 users) Total Accepted: 188(150 users) Rating:  Special Judge: No Description 在长度为n(n<10

数据结构顺序表思想以及完整代码实现

本文转载自趣学算法,方便个人学习参考使用 http://blog.csdn.net/rainchxy/article/details/77946835 数据结构 第3讲 顺序表 顺序表是最简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以快速定位第几个元素,中间不允许有空,所以插入.删除时需要移动大量元素. 顺序表可以分配一段连续的存储空间Maxsize,用elem记录基地址,用length记录实际的元素个数,即顺序表的长度, 结构体的定义: 结构体定义后,如果要定义个顺序

数据结构----顺序表的增和遍历(2018/10/23)

数据结构包含顺序表和链表 顺序表方便改和查 链表便于增删 顺序表的增和遍历: 代码一: 1 using System; 2 namespace deaiWith 3 { 4 class MySeqList<T> 5 { 6 //实际的元素个数 7 private int _flag; 8 //存储的空间 9 private T[] _ints; 10 public void AddItem(T Item) //增加元素到末尾 ,追加 11 { 12 if (_flag >= _ints.

8.基本数据结构-顺序表和链表

一.内存 - 计算机的作用:对数据进行存储和运算.首先我们需要知道我们目前使用的计算机都是二进制的计算机,就以为着计算机只可以存储和运算二进制的数据.例如下载好的一部电影,该电影可以存储到计算机中,计算机中存储的是基于二进制的电影数据,然后我们可以通过相关的视频播放软件结合相关的硬件对电影的二进制数据进行相关的运算操作,所产生的结果就是我们可以看到电影的画面和听到音频的声音. - 问题:阐述计算机如何计算1+2的结果? - 阐述:简单理解为,首先可以将1和2输入到计算机中,然后计算机会将1和2转

数据结构----顺序表与单链表(JAVA)

下面为学习顺序表和单链表的一些基本操作函数: 1 public class SeqList<T> extends Object { 2 protected int n; 3 protected Object[] element; 4 5 public SeqList(int length) { 6 this.element = new Object[length]; 7 this.n = 0; 8 } 9 10 public SeqList() { 11 this(64); 12 } 13 1

数据结构——顺序表的实现

/* 线性结构的基本特征: 1. 集合中必存在唯一的一个"第一元素" 2. 集合中必存在唯一的一个"最后元素" 3. 除最后元素之外,均有唯一的后继 4. 除第一元素之外,均有唯一的前驱 对线性表的基本操作: {结构初始化} InitList(&L); //构造一个空的线性表L {结构的销毁} DestroyList(&L); //销毁线性表L {引用型操作} ListEmpty(L); //线性表判空 ListLength(L); //返回线性表长

数据结构顺序表的操作全集(创建,遍历,插入,删除,排序等等)

#include"stdio.h" #include"stdlib.h" #include"malloc.h" #define list_size 100 typedef struct Node { int data[list_size]; int len; }NODE,* PNODE; void creat_list(PNODE L) { int i; int val; int len; /* PNODE L=(PNODE)malloc(siz

数据结构-------顺序表的实现

2016.1-14 顺序表的实现 .h文件 #pragma once #include<stdio.h> #include<string.h> #include<assert.h> #define MAX_SIZE 1000//预定义顺序表为1000 typedef int DataType;//控制以后数据类型 typedef struct SeqList//定义一个结构体 { DataType array[MAX_SIZE];//定义一个数组 size_t size

c数据结构 顺序表和链表 相关操作

编译器:vs2013 内容: #include "stdafx.h"#include<stdio.h>#include<malloc.h>#include<stdlib.h> #define LINK_INIT_SIZE 100#define LISTINCREAMENT 10#define ElemType int#define OVERFLOW -2#define OK 1#define ERROR 0 typedef int status; /