| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- /*
 
  
- 开发者:慢蜗牛 开发时间:2020.6.11
 
  
- 程序功能:逆序建立链表,顺序输出
 
  
- */
 
  
- #include<stdio.h>
 
 - #include<malloc.h>
 
 - #define LEN sizeof(struct once)
 
  
- struct once//建立结构
 
 - {
 
 - int a;
 
  
- struct once* next;
 
 - };
 
  
- struct once* out()//建立头插法逆序建立链表
 
 - {
 
 - int n = 0;
 
  
- struct once* p1, * p2;
 
  
- printf("请输入:");
 
  
- p1 = p2 = (struct once*)malloc(LEN);
 
  
- scanf_s("%d", &p1->a);
 
  
- p2->next = NULL;
 
  
- while (p1->a != -1)
 
 - {
 
 -     if (n == 0) p1->next = p2->next;
 
  
-     else p1->next = p2;
 
  
-     p2 = p1;
 
  
-     p1 = (struct once*)malloc(LEN);
 
  
-     scanf_s("%d", &p1->a);
 
  
-     n = n + 1;
 
 - }
 
 - return(p2);
 
 - }
 
  
- void print(struct once* head)//输出链表
 
 - {
 
  
- struct once* p1, * p2, * p3, * p;
 
  
- p3 = p1 = p2 = (struct once*)malloc(LEN);
 
  
- p1->next = head; head = p1;
 
  
- p1 = head->next;
 
  
- do//反转
 
 - {
 
 -     p3 = head->next; p2 = p1->next;
 
  
-     head->next = p2; p1->next = p2->next;
 
  
-     p2->next = p3;
 
 - } while (p1->next != NULL);
 
  
- p = head->next;
 
  
- do//输出头节点链表
 
 - {
 
 -     printf("--%d", p->a);
 
  
-     p = p->next;
 
  
- } while (p != NULL);
 
 - }
 
  
- void main()//调用函数
 
 - {
 
  
- struct once* head;
 
  
- head = out();
 
  
- print(head);
 
  
- }
 
  复制代码 |   
 
 
 
 |