双向链表(差不多)

 1 #include <iostream>
 2 #include <cstdlib>
 3 using namespace std;
 4 typedef struct node
 5 {
 6     int date ;
 7     node *pri;
 8     node *next;
 9 }*linklist,listnode;
10 linklist creatlist(int num)
11 {
12     linklist head=NULL,temp=NULL,tail=NULL;
13     int i;
14     for(i=0;i<num;i++)
15     {
16         if(head==NULL)
17         {
18             head=(linklist)malloc(sizeof(listnode));
19             cin>>head->date;
20             head->pri=NULL;
21             tail=head;
22         }
23         else
24         {
25             temp=(linklist)malloc(sizeof(listnode));
26             cin>>temp->date;
27             temp->pri=tail;
28             tail->next=temp;
29             tail=temp;
30             tail->next=NULL;
31 
32         }
33     }
34     return head;
35 }
36 linklist outputlist(linklist head)
37 {
38     linklist p=head,tail;
39     while(p!=NULL)
40     { 
41         cout<<p->date<<' ';
42         tail=p;
43         p=p->next;
44     }
45     return tail;
46 }
47 void _outputlist(linklist tail)
48 {
49     linklist p=tail;
50     while(p!=NULL)
51     {
52         cout<<p->date<<' ';
53         p=p->pri;
54     }
55 }
56 int main()
57 {
58     linklist head,tail;
59     int num;
60     cin>>num;
61     head=creatlist(num);
62     tail=outputlist(head);
63     cout<<endl;
64     _outputlist(tail);
65 }
原文地址:https://www.cnblogs.com/a1225234/p/4612810.html