Chinaunix首页 | 论坛 | 博客
  • 博客访问: 729439
  • 博文数量: 134
  • 博客积分: 3207
  • 博客等级: 中校
  • 技术积分: 1995
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-01 20:47
文章分类

全部博文(134)

文章存档

2022年(1)

2020年(7)

2018年(2)

2016年(5)

2015年(14)

2014年(21)

2013年(3)

2012年(1)

2011年(15)

2010年(30)

2009年(35)

分类: LINUX

2009-11-08 19:02:24

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

typedef struct node{
    char data;
    struct node *next;
}Nnode,*Link;

/*
 *Fun Name: InitLink
 *Fun Could: Create a Link
 *Input Num: none
 *Output Num: L
 */

Link InitLink()
{
    Link L;
    L = (Link)malloc(sizeof(Nnode));
    L->next = NULL;
    return L;
}

/*
 *Fun Name: InsertL
 *Fun Could: Insert a Link
 *Input Num: L,e     
 *Output Num: L
 */

Link InsertL(Link L, char e)
{
    Link s,r;
    r = L;
    while(r->next != NULL)
        r = r->next;
    s = (Link)malloc(sizeof(Nnode));
    s->data = e;
    r->next = s;
    s->next = NULL;
    return L;
}

/*
 *Fun Name: DeleteL
 *Fun Could: Delete a jiedian
 *Input Num: L,i
 *Output Num: L
 */

Link DeleteL(Link L, int i)
{
    Link r,p;
    int i1,i2;        
    r = p = L;
    i1 = i2 = i;
    while(i1 != 1){
        p = p->next;
        i1--;
    }
    while(i2 != 0){
        r = r->next;
        i2--;    
    }
    p->next = r->next;
    free(r);
    return L;
}

/*
 *Test
 */

int main()
{
    Link L,r;
    char i;
    L = InitLink();
    for(i = 48; i < 58; i++)
        L = InsertL(L,i);
    L = DeleteL(L,9);
    r = L->next;
    while(r != NULL){
        printf("%c\n", r -> data);
        r = r->next;
    }
    return 0;
}




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