用链表实现的一个小程序(C语言)
来源:互联网 发布:在线淘宝代码生成器 编辑:程序博客网 时间:2024/06/05 17:40
这个程序是实现这样一个功能:输入一列整数,输出是把这列数重复出现的数字过滤掉。
例如:输入12 13 12 14 13,输出:12 13 14,用链表实现。
//liushuaikobe1993@163.com#include <stdio.h>#include <stdlib.h>typedef struct NODE //节点的结构体类型{int e;struct NODE *next;}node,*linklist;int get_element() //获取节点的数据段数据{int i;scanf("%d",&i);return i;}linklist build_list(int n)//链表的建立,其中n是链表的长度{linklist p,r,head=NULL;int i;printf("请一次性输入数字:");for (i=0;i<n;i++){p=(linklist)malloc(sizeof(node));p->e=get_element();p->next=NULL;if (!head)//head为空,本次建立的是第一个节点,将它赋给headhead=p;else//head不为空,本次建立的不是第一个节点,将它接在链表的尾部r->next=p;r=p;//r永远指向链表最后一个节点}return head;}void del_same_element(linklist head){linklist r,p,t;for (r=head;r!=NULL;r=r->next)for (p=r->next;p!=NULL;p=p->next)if (r->e==p->e){for (t=head;t->next!=NULL;t=t->next)if (t->next==p){t->next=p->next;break;}}}void display_list(linklist head){ linklist r;for (r=head;r/*->next*/!=NULL;r=r->next)//如果"->next"不被注释掉,那么这也是错误的,链表的最后一个元素无法被遍历printf("%d ",r->e); /*linklist r=head; //这段代码是错误的,这样遍历链表会导致链表最后一个节点无法遍历的到,请读者自己分析 while(r!=NULL) { printf("%d ",r->e); r=r->next; }*/}int main(){int num;while(1){printf("输入元素个数(至少两个):");scanf("%d",&num);if (num>=2)break;}linklist head=build_list(num);del_same_element(head);display_list(head);return 0;}
- 用链表实现的一个小程序(C语言)
- 关于C语言的一个小程序
- 一个简单的C语言小程序
- 一个C语言小程序
- 用C语言实现一个Windows小程序
- 用C语言实现的一个可以计算任意长度整数加法的小程序
- 我自己编的一个c语言小程序:银行基本功能的实现
- C语言实现的小项目 关机小程序
- 一个C语言写的三维坐标的小程序
- 求个C语言源代码~一个简单的小程序
- 大家来看一个这样的C语言小程序
- 编小一个最小的C语言程序
- 一个简单的C语言小程序,打印九九乘法表
- c 语言小的程序
- c语言小程序之三子棋小游戏的实现
- 用C实现打字机模式的一个小程序
- 【C语言】没事可以试试这个小程序,使用文件操作,模拟实现一个简单的文件拷贝工具!
- C语言小程序------------数组实现栈功能(一)
- 使用Castle动态装载WCF服务
- 设计模式之 Builder 模式
- T.38 抓包分析
- C# 字符串格式化
- 给老板汇报技术规划的一些要点
- 用链表实现的一个小程序(C语言)
- 设置 ComboBox不能编辑
- BarTender与ASP.NET的集成小结
- 错误、经验、点滴细节
- ☆ Visual Studio 2008 每日小窍门 【持续发布中~】 Tips:101
- 系统架构师的职责和要求
- ShowDialog
- 个人成长通关之路:四仁五德六读书
- Bash 内建参数