C++ 双链表 构造函数(知道的来 ,能明白的奖励多多)

来源:百度知道 编辑:UC知道 时间:2024/06/01 22:07:35
带参双链表
#include"DLinkNode.h"
class DoublyLinkkedList
{
public :
DoublyLinkkedList(T table[],int n)
......
};
其中table[]为一维数组,n为数组长度.
写出DoublyLinkkedList(T table[],int n)函数体的内容.
要求主函数可以用
int main()
{
const int N=10;
int table[N]={7,2,4,8,0,7,1,6,9,7};
DoublyLinkedList<int>list(table,N);
......
return 0;
}
形式
DLinkNode.h,见图片
或见以下部分:
#include<iostream.h>
template<typename T>
class DLinkNode
{
public:
T data;
DLinkNode<T>*prev,*next;
DLinkNode()
{
prev=next=NULL;
}
DLinkNode(T data,DLinkNode<T>*prev=NULL,DLinkNode<T>*next=NULL)
{
this->data=data;
this->prev=prev;
this->next=next;
}
};

//有疑问,hi我
#include <iostream.h>
template<typename T>
class DLinkNode
{
public:
T data;
DLinkNode<T>*prev,*next;
DLinkNode()
{
prev=next=NULL;
}
DLinkNode(T data,DLinkNode<T>*prev=NULL,DLinkNode<T>*next=NULL)
{
this->data=data;
this->prev=prev;
this->next=next;
}
};

template<typename T>
class DoublyLinkedList
{
public :
DoublyLinkedList(T table[],int n)
{
if(n<1)
{
m_head = NULL;
}
else
{
DLinkNode<T> *dnode = new DLinkNode<T>(table[0], NULL, NULL);
m_head = dnode;
DLinkNode<T> *p = m_head;

for(int i=1; i<n; ++i)
{
dnode = new DLinkNode<T>(table[i], p, NULL);
p->next = dnode;
p = dnode;
}
}
}

private:
DLinkNode<T>* m_head;