用DEV简单复习下的链表构造,有问题欢迎指出。
#include<iostream>
#include<algorithm>
//单链表、双链表
using namespace std;
typedef struct List
{
struct List * Node;
int Num;
}List1;
typedef struct Lists
{
struct Lists * HeadNode;
struct Lists * LastNode;
int Num;
}List2;
//单链表
int SingleLined()
{
List1 list1;
List1 * p = &list1;
//构造单链表
for(int i=1;i<5;i++)
{
// List1 * list = (List1 *) malloc(sizeof(List1));
List1 * list = new List1;
p->Node = list;
p->Num = i;
p = list;
}
p->Node = NULL;
p = &list1;
//单链表输出
while(p->Node != NULL)
{
cout << p->Num <<"\n";
p = p->Node;
}
}
//双链表
int DoubleLined()
{
//链头初始化
List2 list2;
list2.HeadNode = NULL;
list2.Num = 5 ;
List2 * p1 = &list2;
List2 * p2 = NULL;
//构造双链表
for(int i=6;i<10;i++)
{
p2 = new List2;
p2->Num = i;
p2->HeadNode = p1;
p1->LastNode = p2;
p1 = p2;
}
p1->LastNode=NULL;
p2 = &list2;
//双链表输出
while(p2->LastNode != NULL)
{
cout << p2->Num << "\n";
p2 = p2->LastNode;
}
}
int main(){
SingleLined();
DoubleLined();
return 0;
}