#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;//相当于把新的节点的下一个节点指向前面一个节点的地址 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; }
头插法和尾插法
猜你喜欢
转载自www.cnblogs.com/bluefly-hrbust/p/10165166.html
周排行