void mainO ∥主函数 ∥主函数开始 int i a, b ∥声明整型变量ia,b ∥声明TM型结构数组叫8,TM结构指针head,p struct TM n 8, head, " p; for(i=1;i<=7;i=i+1) ∥循环 ∥循环体开始 printf(":输入n%的xn");∥提示输入第i个结构的x值 scanf(%od", &a); ∥输入a ni-x=a; ∥将a的值赋给结构n[的元素x printi('"输入n[%d]的yn"’i);∥提示输入第i个结构的y值 scanf(%d", &b) ∥输入b ni-y=b ∥将b的值赋给结构n[的元素y ∥循环体结束
11 void main() // 主函数 { // 主函数开始 int i,a,b; // 声明整型变量i,a,b // 声明TM型结构数组n[8],TM结构指针head,p struct TM n[8],*head,*p; for(i=1;i<=7;i=i+1) // 循环 { // 循环体开始 printf("输入n[%d]的x\n",i); // 提示输入第i个结构的x值 scanf("%d",&a); // 输入a n[i].x=a; // 将a的值赋给结构n[i]的元素x printf("输入n[%d]的y\n",i); // 提示输入第i个结构的y值 scanf("%d",&b); // 输入b n[i].y=b; // 将b的值赋给结构n[i]的元素y } // 循环体结束
head=&nl ∥链表头部指向n for(i=1;i<=6;i=i+1)∥将结构数组m形成链表 nHi. next=&n计+1;∥m[的next指针指向下一个结构mi+1 n[7.next=nul; ∥链表尾部指向空 p=head ∥lp指向链表头部head i=1: ∥/赋值为1 do ∥直到型循环,用于输出链表内容 ∥循环体开始 ∥输出结点内容 printi("结点%d:x=%d,y=%dn"ip→>xp->y); p=p->next; ∥lp指向相邻的下一个结点 i=i+1: ∥计数i加1 3 while(pl =null) ∥未到链表尾部,则继续循环 ∥主函数结束
12 head=&n[1]; // 链表头部指向n[1] for(i=1;i<=6;i=i+1) // 将结构数组n形成链表 { n[i].next=&n[i+1]; // n[i]的next指针指向下一个结构n[i+1] } n[7].next=null; // 链表尾部指向空 p=head; // p指向链表头部head i=1; // i赋值为1 do // 直到型循环,用于输出链表内容 { // 循环体开始 // 输出结点内容 printf("结点%d: x=%d, y=%d\n",i,p->x,p->y); p=p->next; // p指向相邻的下一个结点 i=i+1; // 计数i加1 } while(p!=null); // 未到链表尾部,则继续循环 } // 主函数结束
下面的程序与上面的程序区别仅在 scant(%d”,&(n[x) 去替换 scanf“%d &a); ni.x=a; ∥结构3.c #include <stdio. h ∥预编译命令 #define null o ∥定义空指针常量 struct TM ∥定义TM结构 int x, y; ∥整型变量x,y struct TM *next: ∥指向TM结构的指针
13 下面的程序与上面的程序区别仅在 scanf(“%d”,&(n[i].x)); 去替换 scanf(“%d”,&a); n[i].x=a; // 结构3.c #include <stdio.h> // 预编译命令 #define null 0 // 定义空指针常量 struct TM // 定义TM结构 { int x,y; // 整型变量x,y struct TM *next; // 指向TM结构的指针 };
void maino ∥主函数 ∥主函数开始 int i.a. b ∥声明整型变量,a,b ∥声明TM型结构数组n8],TM结构指针head,p struct TM n8, head, *p; for(i=1;<=7;i=计1)∥循环 ∥循环体开始 printf(":输入n%d的xn"i);∥提示输入第个结构的x值 scanf('"%d",&(m[ix);∥输入n[订x printi('"输入n[%d]的yn",j);∥提示输入第个结构的y值 scant('%d,&(m[ily);∥输入n[y ∥循环体结束
14 void main() // 主函数 { // 主函数开始 int i,a,b; // 声明整型变量i,a,b // 声明TM型结构数组n[8],TM结构指针head,p struct TM n[8],*head,*p; for(i=1;i<=7;i=i+1)// 循环 { // 循环体开始 printf("输入n[%d]的x\n",i); // 提示输入第i个结构的x值 scanf("%d",&(n[i].x)); // 输入n[i].x printf("输入n[%d]的y\n",i); // 提示输入第i个结构的y值 scanf("%d",&(n[i].y)); // 输入n[i].y } // 循环体结束
head=&nl ∥链表头部指向n or(i=1;i<=6;i=i+1)∥循环 ∥循环体开始 nli]next=&n[i+1l;∥n[inex指向ni+1 ∥循环体结束 n[7.next=nul; ∥链表尾部赋值为空指针 p=head; ∥lp指向链表头部head i=1: ∥/赋值为1 do ∥直到型循环 ∥循环体开始 ∥提示输入结点信息 printi("结点%d:x=%d,y=%dn"(*p).x,(p)y); p=(p).next; ∥p指向相邻的下一个结点 i=i+1 ∥/i加1 3 while(pl =null) ∥未到达链表尾部,则继续循环 ∥主函数结束
15 head=&n[1]; // 链表头部指向n[1] for(i=1;i<=6;i=i+1) // 循环 { // 循环体开始 n[i].next=&n[i+1]; // n[i].next指向n[i+1] } // 循环体结束 n[7].next=null; // 链表尾部赋值为空指针 p=head; // p指向链表头部head i=1; // i赋值为1 do // 直到型循环 { // 循环体开始 // 提示输入结点信息 printf("结点%d: x=%d, y=%d\n",i,(*p).x,(*p).y); p=(*p).next; // p指向相邻的下一个结点 i=i+1; // i加1 } while(p!=null); // 未到达链表尾部,则继续循环 } // 主函数结束