本文共 1182 字,大约阅读时间需要 3 分钟。
第一种方式是将新创建的单链表结点加在链表头,这种方式要注意的是最先输入的值是这个链表尾的值 在 |new linkNode2 | ---- > |new linkNode 1|----->
第二种方式是将新创建的单链表结点加在链表尾
#include <stdlib.h>
#include <stdio.h> typedef int dataType; typedef struct linkedNode { int data; struct linkedNode *next; }linkedNode,*LinkedList; void createLinkList(LinkedList link,int n){ int i=0; LinkedList p; link->next = NULL; //link作为表头指针 for(i=n;i>0;i--){ p = (LinkedList)malloc(sizeof(linkedNode));//新建结点 scanf("%d",&p->data); //为结点赋值 p->next=link->next; //将新建的结点的next域指向旧的结点,这就使用新建结点成为表头 link->next = p; } } void createLinkListTail(LinkedList link,int n){ LinkedList p; LinkedList r; int i=0; r = link; for(i=0;i<n;i++){ p = (LinkedList)malloc(sizeof(linkedNode));新建结点 p->data = i; //为结点赋值 r->next = p; //将指针指向新建立的一个结点,这个结点是放在单链表尾部 r=p; } r->next=NULL; } void main(){ linkedNode *link; linkedNode *linkTail; linkedNode *p; int n=5; link=(LinkedList)malloc(sizeof(linkedNode)); createLinkList(link,5); p=link; p=p->next; while(p!=NULL){ printf("this is %d \n " ,p->data); p=p->next; } linkTail=(LinkedList)malloc(sizeof(linkedNode)); createLinkListTail(linkTail,5); p=linkTail; p=p->next; while(p!=NULL){ printf("this is %d \n " ,p->data); p=p->next; } }转载地址:http://ctmvn.baihongyu.com/