#include <stdio.h> #include <stdlib.h> typedef struct lllll//链表结点结构体 { int data; struct lllll* next; }link; link* head()//头节点创造 { link*head=malloc(sizeof(link)); head->next=head; return head; } link* creat(int x)//结点创造 { link*new=malloc(sizeof(link)); new->data=x; new->next=NULL; return new; } void tocha(link*phead,int x)//头插式插入 { if(phead==NULL) return; link*p=creat(x); phead->next=p; p->next=phead; } void jh(link*phead)//交换前两个结点和后两个结点 { if(phead==NULL) return; link*p=phead->next; link*q=p->next; phead->next=q;//交换第1,2个结点 p->next=q->next; q->next=p; link*o=phead; while(p->next!=phead)//三个指针指到最后三位 { o=q; q=p; p=p->next; } o->next=p;//交换最后两位 q->next=p->next; p->next=q; } void dayin(link *phead)//打印链表 { if(phead==NULL) return; link*p=phead->next; while(p->next!=phead) { printf("%d",p->data); p=p->next; } } int main() { int n;//输入一个n位的数组,其值由键盘输入 scanf("%d",&n); int a[n]; for(int i=0;i<n;i++) { scanf("%d",&a[i]); } link*phead=head();//头指针指向头结点 for(int i=n-1;i>=0;i--) { tocha(phead,a[i]); } printf("%d->",(phead->next)->data); dayin(phead); }
时间: 2024-04-08 09:32:01 浏览: 18
这段代码是一个简单的链表操作,实现了表的创建、插入交换操作,最打印出链表的内容。具的操作步骤如下:
1. 首定义了一个链表结的结构体 ``,包含一个整型数据员 `data` 和指向下一个结的指针成员 ``。
2. 定了一个 `head()` 函数用于创建头结,并返回头结点的针。
3. 定义了一个 `()` 函数,用于创建新的结点将传入的参数作为结点数据,并返回新结点的指针。
. 定义了一个 `cha()` 函数,用在头部插入结。函数接受两个参数,第一个参数头结点的指针,第二个参数是要插入的数据。函数会创建一个新结点,并将其插入到头结点面。
5. 定义了一个 `jh()` 函数,用于交换链表中的两个结点和后两个结点。函数接受一个参数,即头点的指针。函数会先交换第一个和第二个结点,然后找到最后两个结点并交换它们。
6. 定义了一个 `dayin()` 函数,用于打印链表的内容。函数接受一个参数,即头结点的指针。函数会遍历链表,并打印每个结点的数据。
7. 在 `main()` 函数中,首先从键盘输入一个整数 `n`,表示数组的长度。然后创建一个长度为 `n` 的整型数组 `a`,并从键盘输入数组的值。
8. 创建头结点,并将数组中的元素逆序插入到链表中。
9. 打印链表的第一个元素,并调用 `dayin()` 函数打印链表的内容。
注意:为了使程序正常运行,你需要在代码开头包含 `<stdio.h>` 和 `<stdlib.h>` 头文件。
相关问题
#include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LNode { ElemType da
`#include <stdio.h>`和`#include <stdlib.h>`是C语言中的两个头文件。`<stdio.h>`是标准输入输出头文件,提供了一些用于输入输出的函数和宏定义。`<stdlib.h>`是标准库头文件,提供了一些常用的函数和宏定义,如内存分配、随机数生成等。
在你的代码中,`typedef int ElemType;`定义了一个类型别名,将`int`类型命名为`ElemType`。
`typedef struct LNode`定义了一个结构体类型`LNode`,结构体是一种自定义的数据类型,可以包含多个不同类型的成员变量。在这里,`LNode`结构体中的成员变量还没有完整定义,因此代码截断了。
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef int ElemType; typedef struct
这段代码是C语言中的头文件引用和一些定义的示例。其中,`#include <stdio.h>`和`#include <stdlib.h>`是用来引入标准库函数的头文件。`stdio.h`包含了输入输出相关的函数,如`printf`和`scanf`;`stdlib.h`包含了一些常用的函数,如内存分配函数`malloc`和随机数生成函数`rand`。
`#define MAXSIZE 100`是一个宏定义,用来定义一个常量`MAXSIZE`,它的值为100。
`typedef int ElemType;`是用来给`int`类型起一个别名`ElemType`,方便在代码中使用。
至于代码中的结构体部分,由于你没有提供完整的代码,所以无法给出具体的解释。但一般来说,结构体用于定义一种自定义的数据类型,可以包含多个不同类型的成员变量。