带头结点头部插入创建链表
2013-12-21 16:01
555 查看
/*创建一个带头结点的链表,头部插入法创建*/ #include<stdio.h> #include<stdlib.h> #define DataType char typedef struct node { DataType data; struct node *next; }ListNode,*LinkList; /*创建一个带头结点的链表*/ LinkList createLinkList() { char ch; LinkList temp,head = (ListNode*)malloc(sizeof(ListNode)); head->next = NULL; puts("\n输入链表节点的数值:"); while((ch = getchar()) !='\n') { temp = (ListNode*)malloc(sizeof(ListNode)); if(!temp) exit(0); temp->data = ch; temp->next = head->next; head->next = temp; } return head; } /*在链表的结尾出插入新节点*/ void insertLinkList(LinkList head,DataType item) { LinkList p,temp = (ListNode*)malloc(sizeof(ListNode)); temp->data = item; temp->next = NULL; if(!temp) exit(0); p = head; while(p->next) p = p->next; p->next = temp; } void print(LinkList head) { LinkList p = head->next; while(p) { printf("%c",p->data); p = p->next; } putchar(10); } void destroyLinkList(LinkList head) { LinkList p,q; p = head->next; while(p) { q = p->next; free(p); p = q; head->next = q; } } int main() { char ch; LinkList head; head = createLinkList(); print(head); puts("\n输入要插入的元素值:"); ch = getchar(); getchar(); insertLinkList(head,ch); print(head); destroyLinkList(head); return 0; }
相关文章推荐
- WinDBG常用断点命令
- kill 命令到底是干嘛的
- PHP register_shutdown_function函数详解
- Android 4.0 打开网络设置界面(转载)
- SOS 调试扩展 (SOS.dll)
- 第17周项目19-数组用于进制转换
- ubuntu常用PPA
- 如何关闭Sublime Text 3的自动更新?
- 【stagefrightplayer】4 OMX Codec介绍
- 配置CXF中wsdl2java命令环境配置
- CDH4.2 JobTracker HA
- 用List实现Stack基本功能
- GCD 注册通知
- Android中Matrix的pre post set方法理解
- PHP--MVC架构及rewrite技术
- [iOS]解决键盘弹出时挡住输入框的问题
- 【stagefrightplayer】5 音频输出AudioPlayer介绍
- java和 javaw 以及 javaws
- 汇编学习笔记(5)阶段性总结
- Shell 编程的两个简单小例子