鱼C论坛

 找回密码
 立即注册
查看: 2887|回复: 0

[学习笔记] 输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立单链表并输出。

[复制链接]
发表于 2021-5-18 18:13:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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);

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 01:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表