zoukankan      html  css  js  c++  java
  • 顺序表的实现

    // LinerList.cpp : 定义控制台应用程序的入口点。
    //c++语言编写,
    //实现线性表中的顺序存储结构,用动态申请的数组实现,注意释放内存
    //实现表的构造、析构、插入、删除、显示操作
    #include "stdafx.h" #include<iostream> using namespace std; template<class T> class LinerListSqu{ T*elem;//表首地址 int length;//表长 long maxsize;//表容量 public: LinerListSqu(int);//构造函数 ~LinerListSqu();//析构函数 bool insertElem(int k, const T&x);//在k个元素之后插入x bool deleteElem(int k, T&x);//删除第k个元素并将它返回至x中 void display(); }; template<class T> LinerListSqu<T>::LinerListSqu(int num){ elem = new T[num]; length = 0; maxsize = num; } template<class T> bool LinerListSqu<T>::insertElem(int k,const T&x){ if (maxsize == 0 || k<0 || k>length) return false; if (length >= maxsize){ elem = (T*)realloc(elem, maxsize + sizeof(T)*maxsize); maxsize *= 2; } for (int i = length-1+1 ; i > k; i--){ elem[i] = elem[i - 1]; } elem[k] = x; length++; return true; } template<class T> bool LinerListSqu<T>::deleteElem(int k, T&x){ if (length == 0 || k<1 || k>length) return false; for (int i = k -1; i < length - 1; i++) elem[i] = elem[i + 1]; length--; return true; } template<class T> void LinerListSqu<T>::display(){ int len = length; T *p = elem; while (len--) cout << *p++<<","; cout << endl; } template<class T> LinerListSqu<T>::~LinerListSqu(){ delete elem; } int _tmain(int argc, _TCHAR* argv[]) { LinerListSqu<int> L(5); for (int i = 1; i <= 5; i++) L.insertElem(i-1, i*2); L.display(); L.insertElem(3, 0); L.display(); int x; L.deleteElem(3, x); L.display(); cout << x; return 0; }
  • 相关阅读:
    Java集合框架--List去重
    solr管理集合
    关于unix环境高级编程、Linux程序设计两部书浅谈
    ubuntu17.10安装lnmp安装包的核心问题-gcc版本、g++版本
    手机谷歌浏览器简洁处理方法
    Ubuntu当状态栏网络图标隐藏的解决方法汇总
    Ubuntu创建WiFi:16.0.4
    关于virtual box 虚拟机使用
    关于json转义中文
    xp 允许序列号
  • 原文地址:https://www.cnblogs.com/StormWendy/p/8612901.html
Copyright © 2011-2022 走看看