1. 程式人生 > >頭插法和尾插法

頭插法和尾插法

#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; }