码迷,mamicode.com
首页 > 其他好文 > 详细

顺序表程序实现

时间:2014-05-15 17:42:45      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:des   style   class   c   color   http   

 
由于线性表中每个数据元素的类型相同,可以用CC++语言中的一维数组来实现顺序表。
#include<iostream>
using namespace std;
#define LIST_INIT_SIZE 50
class SqList
{
int *elem;//存′?储′¢空?间?基ù址·
int length;//当μ±前°长3¤度è
int listsize;//当μ±前°分·?配?的μ?存′?储′¢容èY量á?
public:
    SqList(int leng);
    int LocateElem(int e);//定¨位?
    void ListInsert(int i,int e);//插2?入è?
    void ListDelete(int i);//删é?除3y
    void show();//显?示ê?顺3序Dò表±í元a素?
    ~SqList()
    {
        delete elem;
        cout<<"destruct called"<<endl;
    }
};
SqList::SqList(int leng)
{
    elem=new int[LIST_INIT_SIZE];
    if(!elem)cout<<"overflow"<<endl;
    if(leng>LIST_INIT_SIZE)
        cout<<"error";
    else
    {    length=leng;
        int i=0;
        int *p=elem;
        for (i;i<leng;i++)
        {
            cout<<"input"<<i+1<<"num:";
            cin>>*(p+i);
        }
    }
    listsize=LIST_INIT_SIZE;
    cout<<"the sqlist is constructed"<<endl;
    show();
}
int SqList::LocateElem(int e)
{
    int i=1;
    int *p=elem;
    while(i<=length&&(*p++!=e))
        ++i;
    if(i<=length) return i;
    else return 0;
}
void SqList::show()
{
    int i=1;
    int *p=elem;
    for(i;i<=length;i++)
    {
        cout<<"the "<<i<<"th content is"<<*(p+i-1)<<endl;
    }
}
void SqList::ListInsert(int i,int e)
{
    int *q=&elem[i-1];//指?示ê?插2?入è?位?置?
    int *p;
    for(p=&elem[length-1];p>=q;--p)//插2?入è?位?置?及°之?后oó的μ?元a素?右óò移ò?
        *(p+1)=*p;
    *q=e;//插2?入è?e
    ++length;
    cout<<"insertthe"<<i<<" successful"<<endl;
        show();
    cout<<"the lengtn of SqList is"<<length<<endl;
}
void SqList::ListDelete(int i)
{
    if((i<1)||(i>length)) cout<<"delete error";
    int *p=&elem[i-1];
    int e=*p;
    int *q=elem+length-1;
    for(++p;p<=q;++p)
        *(p-1)=*p;
    --length;
    cout<<"delete "<<i<<" the "<<e<< "successful"<<endl;
    show();
}
int main()
{
    SqList a(10);
    int i=a.LocateElem(7);
    if(i)
    cout<<"locate is "<<i<<endl;
    a.ListInsert(5,10);
    a.ListDelete(3);
    a.~SqList();
    return 0;
}
 
 





顺序表程序实现,布布扣,bubuko.com

顺序表程序实现

标签:des   style   class   c   color   http   

原文地址:http://www.cnblogs.com/zhuangwy-cv/p/3729815.html

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