关于数据结构的线性表实现问题 可能对你们来说很简单,对我这刚入门的来说。。。求帮助

qq373432361 2013-03-24 12:35:11

我们学校数据结构用的是一本国外的教材,里面的代码都是模板,无法运行实现。我的C++又有限。这是书上关于线性表的class里面的代码:
template <typename E> class Link {
public:
E element; // Value for this node
Link *next; // Pointer to next node in list
// Constructors
Link(const E& elemval, Link* nextval =NULL)
{ element = elemval; next = nextval; }
Link(Link* nextval =NULL) { next = nextval; }
};
我要怎么写int 里面的内容,构造出一个线性表呢。

下面是顺序表的class里面的内容:
template <typename E> // Array-based list implementation
class AList : public List<E> {
private:
int maxSize; // Maximum size of list
int listSize; // Number of list items now
int curr; // Position of current element
E* listArray; // Array holding list elements

public:
AList(int size=defaultSize) { // Constructor
maxSize = size;
listSize = curr = 0;
listArray = new E[maxSize];
}

~AList() { delete [] listArray; } // Destructor

问题同上。。。谢谢啦
...全文
127 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂的红豆 2013-03-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/ZLhy_ 这是我的博客,里面几乎涵盖了所有的基本数据结构实现源代码,很完整的,我的资源里还有全套的工程,打开就可运行的那种。
  • 打赏
  • 举报
回复
你的意思是指实例化线性表吗?~
qq373432361 2013-03-24
  • 打赏
  • 举报
回复
引用 3 楼 dy106 的回复:
AList<int> alist;这样就把E用int替代了
嗯嗯这个我知道的,我是不知道怎么写int Limian 的内容来实现
qq373432361 2013-03-24
  • 打赏
  • 举报
回复
引用 2 楼 xiezhongweiwei 的回复:
int类型值是线性表结构体节点一个属性,加上一个该节点类型的指针,就可以构成线性表的节点,通过指针像类似一条线一样形成逻辑关系将节点联系在一起
嗯嗯 这个我懂 可能我没表述清楚,我想问的是我怎么在Int里面写内容实现,比如怎么构造element 和next 。。。
qq373432361 2013-03-24
  • 打赏
  • 举报
回复
引用 1 楼 xiezhongweiwei 的回复:
我只想问一句楼主看懂什么叫线性表了吗。。。 E element; 改成int element;不行就了吗。。。
这个我懂 我说的是怎么在int 里写内容 实现一个线性表的构造
_sunshine 2013-03-24
  • 打赏
  • 举报
回复
AList<int> alist;这样就把E用int替代了
  • 打赏
  • 举报
回复
int类型值是线性表结构体节点一个属性,加上一个该节点类型的指针,就可以构成线性表的节点,通过指针像类似一条线一样形成逻辑关系将节点联系在一起
  • 打赏
  • 举报
回复
我只想问一句楼主看懂什么叫线性表了吗。。。 E element; 改成int element;不行就了吗。。。
qq373432361 2013-03-24
  • 打赏
  • 举报
回复
引用 8 楼 ZLhy_ 的回复:
http://blog.csdn.net/ZLhy_ 这是我的博客,里面几乎涵盖了所有的基本数据结构实现源代码,很完整的,我的资源里还有全套的工程,打开就可运行的那种。
我自己写了一段 现在有一个错误,不知道要怎么去改。可以帮我看一下吗么??? #include<iostream> using namespace std; template<typename E> class Link{ public: E element; Link *next; Link(const E& elemval,Link* nextval=NULL) {element=elemval;next=nextval;} Link(Link* naxtval=NULL){next=nextval;} }; template<typename E>class LList{ private: Link<E>* head; Link<E>* tail; Link<E>* curr; int cnt; void init(){ curr=tail=head=new Link<E>; cnt=0; } void removeall(){ //删除元素 while(head!=NULL){ curr=head; head=head->next; delete curr; } } public: LList(int size=defaultSize){init();} Link<E> *Reverse(LList *Head); bool append(const E&it){ tail=tail->next=new Link<E>(it,NULL); cnt++; return true; } ~LList(){removeall();} }; template <typename E> Link<E> *Reverse(Link<E> *Head) { Link *p=Head->next; Link *q=NULL; Head->next=NULL; while(p) { q=p->next; //保存下一个节点的指针 p->next=Head->next; Head->next=p; //把取出的节点插入到头节点的后面 p=q; } return head; } int main() { double num; bool sign; LList<double>* project=NULL; cout<<"任意输入10 double类型的数:\n"; for(int i=0;i<10;i++) { cin>>num; sign=project->append(num); if(!sign)cout<<"数据存储失败\n"; } Link <double>*p =Reverse(project); while(p != NULL){ p = p->next; printf("%d\n",p->element); } return 0; } 谢谢!
  • 打赏
  • 举报
回复
引用 8 楼 ZLhy_ 的回复:
http://blog.csdn.net/ZLhy_ 这是我的博客,里面几乎涵盖了所有的基本数据结构实现源代码,很完整的,我的资源里还有全套的工程,打开就可运行的那种。
这位前辈已经够全面的了~
qq373432361 2013-03-24
  • 打赏
  • 举报
回复
引用 7 楼 xiezhongweiwei 的回复:
你的意思是指实例化线性表吗?~
是滴

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧