注册 登录
编程论坛 数据结构与算法

利用顺序表编写素数,用c++

hmy346691318 发布于 2011-03-19 23:23, 459 次点击
我是菜鸟,谁能告诉我后面怎么编写,还有前面也不知道对不对,谢谢了


#include  <iostream.h>         
class SeqList
{
private:     
    int MaxSize;                 
    int length;                    
    T *data;                        
public:
    SeqList( ) ;                    
    SeqList(int n ) ;            
    SeqList(T a[ ], int n,int m);      
    ~SeqList( ) ;                  
    void PrintList()      
    void  Delete(int i);               
    void   ScanDelete();               
};

SeqList::SeqList(int n )
{  
    data=new int[n+1];
    for(i=2;i<=n;i++)
        data[i]=1;
    length=n+1
}


void SeqList::Delete(int i)
{   
    j=i+i;
    while (j<=length)
    {
        data[j]=0;  j+=i;
    }
}

void SeqList:: ScanDelete()
{
for(i=2;i<length;i++)
if(data[i]==1)   
Delete(i);
}

void SeqList:: PrintList()
{
    for(i=2;i<=length;i++)
        if (data[i])
            cout<<"  "<<i;
}
3 回复
#2
lucky5635912011-03-21 07:53
还没学类和模板
#3
寒风中的细雨2011-03-21 12:08
程序代码:
//单链表的c++模板
#include <iostream.h>

template <class T>
class Node
{
public:
    T data;
    Node<T> * next;
};

template <class T>
class LinkList
{
public:
     LinkList( ) ;                    //无参构造函数
     LinkList(T a[ ], int n);    //有参构造函数  
     ~LinkList( ){}                  //析构函数
     int Length( );                 //求表长
     T Get(int const i);                    //返回指定位置元素
     Node<T>* Locate(T const x );      //返回指定元素地址
     void Insert(int i, T x){}   //指定位置插入元素
     T Delete(int i){}               //删除指定位置元素
private:   
      Node <T>  *first;              
};

template <class T>
Node<T> * LinkList<T>::Locate( T const x )
{
    Node<T> * temp = first;
    while( x != temp->data )
    {
        temp = temp->next;
    }

    return temp;
}

template <class T>
T LinkList<T>::Get(int const i)
{
    int count = 1;
    Node<T> *temp = first;
    while( i != count )
    {
        temp = temp->next;
        ++count;
    }

    return temp->data;
}

template <class T>
int LinkList<T> ::Length()
{
    int count = 0;
    Node<T> *temp = first;
    while( 0xcccccccc != (const unsigned int) temp )
    {
        temp = temp->next;
        ++count;
    }

    return count;
}

template <class T>
LinkList<T> :: LinkList()
{
    first = NULL;
}

template <class T>
LinkList<T> :: LinkList( T a[], int n)
{
    LinkList();
    Node<T> *temp = NULL;
    while( 0 != n )
    {
        temp = new Node<T>;
        temp->data = a[n-1];
        temp->next = first;
        first = temp;
        --n;
    }   
}


int main()
{
    int a[] = {1, 2, 3, 5, 7, 11, 13};
    LinkList<int> instance(  a, 7 );
    cout << instance.Get( 5 ) << endl;
    cout << instance.Locate( 5 ) << endl;

    cout << "The length is :" << instance.Length() << endl;
    return 0;
}
#4
寒风中的细雨2011-03-21 12:10
~LinkList( ){}
void Insert(int i, T x){}
 T Delete(int i){}



三个没有完成 自己仿照写吧  这个就是个单链表而已  没有什么素数的判断
1