ListItem
我正在使用具有指针和 T 类型值的prev
结构制作双向链表。next
我做对了吗?
当我运行主代码时,我只能在显示中看到 1、15 和 16。
template <class T>
void List<T>::insertSorted(T item)
{
ListItem<T> *node=new ListItem<T>(item);
if (head==NULL)
{
head=node;
}
else if (head!=NULL)
{
T c,d;
ListItem<T> *temp,*temp2;
temp=head;
c=temp->value;
int count=0;
while (temp->next!=NULL)
{
if (temp->prev!=NULL)
temp2=temp->prev;
if (c>item && item>temp2->value)
{
if (temp->prev!=NULL)
{
temp2->next=node;
node->prev=temp2;
node->next=temp;
temp->prev=node;
count++;
}
else if (temp->prev==NULL)
{
head=node;
head->next=temp;
count++;
}
}
temp=temp->next;
c=temp->value;
}
if (temp->value<item) //comparison with last temp
{
temp->next=node;
node->prev=temp;
}
else if (temp->value>item)
{
temp2=temp->prev;
temp2->next=node;
node->prev=temp2;
node->next=temp;
temp->prev=node;
}
}
}
int main()
{
List<int> Mylist;
for (int i=16;i>0;i--)
{
Mylist.insertSorted(i); //insertion should be in ascending order according
//to my fnction
}
Mylist.printList(); //prints the whole linked list
system("PAUSE");
return 0;
}