| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 508 人关注过本帖
标题:写了个很简单的双向链表,新手可以学下,老手可以指点下……
只看楼主 加入收藏
thlgood
Rank: 5Rank: 5
等 级:职业侠客
帖 子:281
专家分:381
注 册:2010-9-24
结帖率:91.43%
收藏
 问题点数:0 回复次数:7 
写了个很简单的双向链表,新手可以学下,老手可以指点下……
程序代码:
/************************************
*双向链表:
*说说这个链表的问题吧:
*①这个链表不是由一个自定义函数创建的。从而不能移植。
*②尚未实现排序等基本操作。
*③不能用一个函数将整个链表以顺序或者逆序输出。
**************************************/

#include <stdio.h>
#include <stdlib.h>
#define MALLOC_M(list) (list *)malloc(sizeof(list))
#define SIZE 20

typedef struct list list;
struct list
{
    char str[SIZE];
    struct list *last;
    struct list *next;
};

int main(void)
{
    list *head = NULL, *tail = NULL;
    list *p1, *p2;

    p1 = MALLOC_M(list);
    printf("Please input a string:\n");
    scanf("%s", p1->str);

    //创建链表
    while(p1->str[0] != '#')
    {
        if (head == NULL)
        {
            head = p1;
            head->last = NULL;
        }
        else
        {
            p2->next = p1;
            p1->last = p2;
        }

        p2 = p1;
        p1 = MALLOC_M(list);
        printf("Please input a string:\n");
        scanf("%s", p1->str);
    }
    free(p1);
    p2->next = NULL;
    tail = p2;

    //顺序输出
    p1 = head;
    while(p1 != NULL)
    {
        printf("%s\n", p1->str);
        p1 = p1->next;
    }

    //逆序输出
    printf("\n-------------------------------\n");
    p2 = tail;
    while(p2 != NULL)
    {
        printf("%s\n", p2->str);
        p2 = p2->last;
    }

    return 0;
}







==========================================
代码来自我的博客:http://www.
==========================================
收到的鲜花
  • waterstar2011-06-08 23:37 送鲜花  10朵   附言:原创内容
2011-06-07 21:25
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
不错  

                                         
===========深入<----------------->浅出============
2011-06-07 21:28
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
请模块化编程--用函数封装链表操作。

    模块化编程,功能清晰,会使程序代码更容易阅读


数据抽象

[ 本帖最后由 cosdos 于 2011-6-8 00:28 编辑 ]

—>〉Sun〈<—
2011-06-08 00:26
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
楼上说得有理,模块化编程,接口与实现分开。

我们都在路上。。。。。
2011-06-08 11:15
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
学习!!!

My life is brilliant
2011-06-08 21:05
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
学习

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-08 21:48
淡泊明志
Rank: 2
等 级:论坛游民
帖 子:8
专家分:13
注 册:2011-5-13
收藏
得分:0 
路过
2011-06-08 23:10
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
看看

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-06-08 23:37
快速回复:写了个很简单的双向链表,新手可以学下,老手可以指点下……
数据加载中...
 
   



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

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