#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; typedef struct Lnode{ int data; Lnode *next; }Lnode,*linklist; void creat_h(linklist &L){//頭插法 linklist s; int n,tmp; L=(linklist)malloc(sizeof(Lnode)); L->next=NULL; scanf("%d",&n); for (int i=1;i<=n;i++){ scanf("%d",&tmp); s=(linklist)malloc(sizeof(Lnode));//新建立一個節點 s->data=tmp; s->next=L->next;//這相當於把S->NEXT一直指向鏈表頭節點 然后頭結點變成不是頭節點后 L->next=s;//再把這頭結點個節點移動成頭結點 } } void creat_w(linklist &L){//尾插法 linklist p,q; int n,tmp; L=(linklist)malloc(sizeof(Lnode)); L->next=NULL; p=L; scanf("%d",&n); for (int i=1;i<=n;i++){ scanf("%d",&tmp); q=(linklist)malloc(sizeof(Lnode)); q->data=tmp; p->next=q;//把p指向下一個節點 p=q;//更新這個節點 } p->next=NULL;//寫在最好 } void print(linklist head){ linklist p=head->next; while(p!=NULL){ printf("%d ",p->data); p=p->next; } } int main(){ int n; linklist a; creat_w(a); print(a); return 0; }