1 // practice32.cpp : Defines the entry point for the console application.
2 //
3 #include "StdAfx.h"
4 #include<malloc.h> // malloc()等
5 #include<stdlib.h> // atoi()
6 #include <stdio.h>
7
8 typedef int ElemType;
9
10 // 线性表的单链表存储结构
11 struct LNode
12 {
13 ElemType data;
14 LNode *next;
15 };
16 typedef LNode *LinkList; // 另一种定义LinkList的方法
17
18 // 操作结果:构造一个空的线性表L
19 int InitList(LinkList &L)
20 {
21 L=(LinkList)malloc(sizeof(LNode)); // 产生头结点,并使L指向此头结点
22 if(!L) // 存储分配失败
23 return 0;
24 L->next=NULL; // 指针域为空
25 return 1;
26 }
27 // 正位序(插在表尾)输入n个元素的值,建立带表头结构的单链线性表
28 void CreateList2(LinkList &L,int n)
29 {
30 int i;
31 LinkList p,q;
32 L=(LinkList)malloc(sizeof(LNode)); // 生成头结点
33 L->next=NULL;
34 q=L;
35 printf("请输入%d个数据\n",n);
36 for(i=1;i<=n;i++)
37 {
38 p=(LinkList)malloc(sizeof(LNode));
39 scanf("%d",&p->data);
40 q->next=p;
41 q=q->next;
42 }
43 p->next=NULL;
44 }
45
46 int ListTraverse(LinkList L)
47 {
48 LinkList p;
49 p = L->next;
50 while(p)
51 {
52 printf("%d ",p->data);
53 p = p->next;
54 }
55 printf("\n");
56 return 1;
57 }
58
59 int main(int argc, char* argv[])
60 {
61 int n=5;
62 LinkList La;
63
64 CreateList2(La,n); // 正位序输入n个元素的值
65 printf("La="); // 输出链表La的内容
66 ListTraverse(La);
67
68 return 0;
69 }