首页 > 代码库 > C语言----------链表的简单操作
C语言----------链表的简单操作
#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 =http://www.mamicode.com/ 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语言----------链表的简单操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。