首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C语言链表基本操作(头插法及其逆置)

C语言链表基本操作(头插法及其逆置)

作者头像
SakuraTears
发布2022-01-13 14:19:32
发布2022-01-13 14:19:32
79600
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
#include <malloc.h>

typedef struct Node
{
    char data;
    struct Node *next;
}SN;

SN * create(int n)
{
    int i;
    SN *h,*p;
    h = NULL;
    for(i = 0; i<n; i++)
    {
        p=(SN*)malloc(sizeof(SN));
        printf("请输入第%d个字符:",i+1);
        p->data = getchar();
        fflush(stdin);
        p->next = h;
        h=p;
    }
    return h;
}

SN * def(SN * h)
{ 
    SN * n1, *n2;
    n1 = h;
    n2 = NULL;
    while(n1 != NULL)
    {
        SN *temp;
        temp = n1;
        n1 = n1->next;
        temp->next = n2;
        n2 = temp;
    }
    h = n2;
    return h;
}
void visit(SN * h)
{ 
    while(h != NULL)
    {
        printf("%c", h->data);
        h = h->next;
    }
    printf("\n");
}

void freelist(SN *h)
{
    SN *temp = h;
    SN *del;
    while (temp != NULL) {
        del = temp;
        temp = temp->next;
        free(del);
    }
}

int main() 
{
    int n;
    SN *h;
    printf("请输入字符个数:\n");
    scanf("%d", &n);
    fflush(stdin);
    h = create(n);
    printf("链表创建成功,对其遍历\n");
    visit(h);
    printf("链表逆置成功,对其遍历\n");
    h = def(h);
    visit(h);
    freelist(h);
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年01月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档