| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:那位高手用你的智慧帮帮忙吧!!!
只看楼主 加入收藏
林语
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:184
注 册:2009-8-29
收藏
得分:3 
鄙人不才,编了第一个,每个功能都由子函数实现,只是程序有些长,呵呵。。

#include<stdio.h>
#include<stdlib.h>
#define SIZE 30
typedef struct Node
{//定义结构体
    char data;
     Node *next;
}LNode,*Linklist;

Linklist Init()
{//建立一个带头节点的空链表
    Linklist L;
    L=(Linklist)malloc(sizeof(LNode));
    L->next=NULL;
    return L;
}

void Insert_first(Linklist L,char a)
{//在表头之后插入节点
    Linklist p;
    p=(Linklist)malloc(sizeof(LNode));
    p->data=a;
    p->next=L->next;
    L->next=p;
}

void Output(Linklist L)
{// 输出链表
    Linklist p;
    for(p=L->next;p;p=p->next)
    {
        printf("%c ",p->data);
    }
    printf("\n");
}

void FreeL(Linklist L)
{//释放链表
    Linklist p,q;
    q=L;
    p=L->next;
    int i=0;
    for(;p!=NULL;p=p->next)
    {//释放除最后节点以外的所有节点
        free(q);
        q=p;
        printf("已成功删除第%d个节点!\n",i);
        i++;
        getchar();
    }
    free(q);//释放最后一个节点
}


void main()
{
    Linklist La;
    char a[SIZE];
    int i,x;
    La=Init();
    printf("how much chars do you want to input:\n");
    scanf("%d",&x);
    getchar();
    printf("please input the chars:\n");
    for(i=0;i<x;i++)            //输入数据
        scanf("%c",&a[i]);
        getchar();
    for(i=0;i<x;i++)            //把数据存入连表
        Insert_first(La,a[i]);
    printf("链表中的数据:\n");
    Output(La);
    printf("正在删除连表:\n");
    FreeL(La);
}
运行效果如下:
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-03-31 14:10
快速回复:那位高手用你的智慧帮帮忙吧!!!
数据加载中...
 
   



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

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