码迷,mamicode.com
首页 > 编程语言 > 详细

C语言----------链表的简单操作

时间:2017-01-06 22:15:32      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:int   div   类型   错误   create   设置   nbsp   getch   new   

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

typedef struct node{ //定义节点类型
    char data; //数据域
    struct node *next; //指针域
}linklist;
linklist* Create(){ //创建链表
    char key;
    linklist *phead; //头指针
    linklist *pnew; //新节点
    linklist *pend; //尾指针
    phead = (linklist*)malloc(sizeof(linklist));
    pend = phead;
    puts("请输入你要创建的链表,以$结束");
    key=getchar();
    while(key!=$){
        pnew = (linklist*)malloc(sizeof(linklist));
        pnew ->data = key;
        pend ->next = pnew; //新节点插入表尾
        pend=pnew; //尾指针指向新表尾
        key=getchar();
    }
    pend->next = NULL; //将尾节点指向的下一节点设置为空
    return phead; //返回头指针
}
linklist* Get(linklist* phead,int pos){ //查找第pos个的节点
    int cur = 0; //扫描器
    linklist *p;
    p = phead; //指向头节点
    while((p->next!=NULL)&&(cur<pos)){ //不合法或到达尾部则退出
        p = p->next;
        cur++;
    }
    if(cur==pos){
        return p;
    }else{
        return NULL;
    }
}
void Print(linklist *phead){ //打印链表
    linklist *p = phead->next;
    while(p!=NULL){
        printf("%c",p->data);
        p=p->next;
    }
    puts("");
}
int main(void){
    linklist* phead =  Create();
    Print(phead);
    int pos;
    puts("请输入你要查找的位置");
    scanf("%d",&pos);
    linklist* pfind = Get(phead,pos);
    if(pfind !=NULL)
    printf("%c",pfind->data);
    else
    puts("输入错误!");
    return 0;
}

 

C语言----------链表的简单操作

标签:int   div   类型   错误   create   设置   nbsp   getch   new   

原文地址:http://www.cnblogs.com/AraragiTsukihi/p/6257240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!