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

#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
快速回复:写了个很简单的双向链表,新手可以学下,老手可以指点下……
数据加载中...
 
   



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

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