| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 980 人关注过本帖
标题:分享练习"作业——链表操作集
只看楼主 加入收藏
will丶
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:117
专家分:443
注 册:2015-10-19
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:4 
分享练习"作业——链表操作集
# include <stdio.h>
# include <stdlib.h>

typedef struct node
{
    int date;
    struct node *pNext;
}NODE, *PNODE;

PNODE init_list(int *len)//初始化链表
{
    PNODE pHead, pRecord, pTemp;
    int i;

    pHead = NULL;
    printf("请输入链表的长度: ");
    scanf("%d", len);
    for (i = 0; i<*len; i++)
    {
        pTemp = (PNODE)malloc(sizeof(NODE));
        if (NULL == pTemp)
        {
            printf("分配失败,程序终止!\n");
            exit(-1);
        }
        pTemp->pNext = NULL;
        printf("节点的值 : ");
        scanf("%d", &pTemp->date);
        if (NULL == pHead)
        {
            pHead = pTemp;
            pRecord = pHead;
        }
        else
        {
            pRecord->pNext = pTemp;
            pRecord = pTemp;
        }
    }

    return pHead;
}

void  traverse_list(PNODE pHead)//遍历链表
{
    PNODE pTemp = pHead;

    while (NULL != pTemp)
    {
        printf("%d ", pTemp->date);
        pTemp = pTemp->pNext;
    }
    printf("\n");
}

bool insert_list(PNODE *pHead, int pos, int len, int e)//插入元素
{
    if (pos<1 || pos>len + 1)
    {
        printf("pos 输入错误!\n");
        return false;
    }

    PNODE pTemp;
    PNODE pRecord = pHead;

    pTemp = (PNODE)malloc(sizeof(NODE));
    if (NULL == pTemp)
    {
        printf("分配失败,程序终止!\n");
        exit(-1);
    }
    pTemp->pNext = NULL;
    pTemp->date = e;
    if (1 == pos)
    {
        pHead = pTemp;
        pTemp->pNext = pRecord;
    }
    else
    {
        for (int i = 1; i <= pos; i++)
        {
            if (pos - 1 == i)
            {
                pTemp->pNext = pRecord->pNext;
                pRecord->pNext = pTemp;
                break;
            }
            pRecord = pRecord->pNext;
        }
    }
    return true;

}

int main()
{
    PNODE pHead = NULL;
    int length = 0;
    int e, pos;

    pHead = init_list(&length);
    printf("未处理的链表 : \n");
    traverse_list(pHead);

    printf("输入插入的位置及元素 : ");
    scanf("%d %d", &pos, &e);
    insert_list(pHead, pos, length, e);
    printf("插入后的链表 : \n");
    traverse_list(pHead);
    return 0;
}

[此贴子已经被作者于2016-4-8 16:04编辑过]

2016-04-04 15:37
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:4 
什么情况,没有注释没有说明

一片落叶掉进了回忆的流年。
2016-04-04 16:42
will丶
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:117
专家分:443
注 册:2015-10-19
收藏
得分:0 
回复 2楼 诸葛欧阳
我只是把我做的链表练习上传了,供借鉴交流,不是问题

腾空类星陨,遥望若花生。
2016-04-05 08:22
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:4 
...

好好学习,天天向上!
2016-04-05 11:07
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:4 
回复 3楼 will丶
大哥,,你可以考虑把标题改改,such as"分享练习"作业——链表操作集"之类的。。。或者发到你的博客里。

φ(゜▽゜*)♪
2016-04-05 11:32
快速回复:分享练习"作业——链表操作集
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016168 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved