Chinaunix首页 | 论坛 | 博客
  • 博客访问: 623655
  • 博文数量: 262
  • 博客积分: 8433
  • 博客等级: 中将
  • 技术积分: 2141
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-31 09:37
文章分类

全部博文(262)

文章存档

2012年(1)

2011年(168)

2010年(92)

2009年(1)

分类: C/C++

2010-12-16 14:17:26

/*
 * LinkList.c
 *
 * Created on: 2010-12-16
 * Author: qiang
 */


#include <stdio.h>
#include <stdlib.h>

typedef int ElemType;
typedef int Status;
typedef struct LNode{    //定义单链表数据结构

    ElemType data;
    struct LNode* next;
}LNode,*LinkList;

//初始化一个空链表

LinkList LinkListInit()
{
    LNode* L;
    L = (LNode*)malloc(sizeof(LNode));
    if(L==NULL)
        printf("申请内存空间失败");
    L->next = NULL;

    return L;
}

//创建一个单链表

LinkList LinkListCreat()
{
    //创建头节点

    LNode* L;
    L = (LNode*)malloc(sizeof(LNode));
    if(L==NULL)
        printf("分配空间失败!\n");
    L->next=NULL;    //头节点为空


    //定义节点r,r始终指向尾节点

    LNode* r;
    r = L;    //其实r指向头节点


    //添加新节点

    int i;
    printf("请输入链表数据,CTRL+D结束! \n");
    while(scanf("%d",&i)!=EOF)
    {
        LNode* p;
        p = (LNode*)malloc(sizeof(LNode));
        p->data = i;

        r->next = p;    //和前节点建立关系

        r = p;            //r节点后移

    }

    printf("创建的链表的数据为: \n");
    LNode* q;
    for(q=L->next;q!=NULL;q=q->next)
        printf("List data:%d \n",q->data);

    //添加尾节点

    r->next = NULL;

    return L;
}

int main()
{
    LNode* L;
    L = LinkListCreat();

    return 0;
}


阅读(1428) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~