基于链表:键盘输入若干个整数,按输入数据逆序建立一个带头结点的单链表
2012-04-02 22:42
393 查看
题目:键盘输入若干个整数,按输入数据逆序建立一个带头结点的单链表
#include <stdio.h> #include <stdlib.h> typedef struct LNode{ int data; /* 链表数据 */ struct LNode* next; /* 链表指针 */ }LNode,*LinkList; int main() { int i,data,count=0; LinkList L; LinkList p; LinkList q; L = (LinkList)malloc(sizeof(LNode)); L->next = NULL; /* 头结点 */ q = L; printf("请输入你的任意个整数,用空格隔开,输入大写字母Q表示结束\n"); do /* 创建链表结点,顺序输入元素 */ { scanf("%d",&data); p = (LinkList)malloc(sizeof(LNode)); p->data =data;p->next = NULL; p->next = q->next;q->next = p; count++; }while(getchar() != 'Q'); q = L->next; i = 1; printf("按逆序插入,链表中的元素如下:\n"); while(i <= count) /* 按序输出链表元素 */ { printf("NO.%d:",i); printf("%5d\t",q->data); q = q->next; if(0 == i%4) printf("\n"); i++; } printf("\n"); /* 释放空间 */ p = L->next; i=1; while(i++ <= count) { q = p; p = p->next; free(q); } return 0; }
相关文章推荐
- 编写程序:建立一个学生数据链表,每个节点的信息包括如下内容:学号,姓名,性别年龄专业。对链表做如下处理。输入一个学号(专业),如果链表中的节点包含此学号(专业),则删去该结点。
- 从键盘读入n个整数(升序),请编写算法实现: 建立带表头结点的单链表; 显示单链表,(形如:H->10->20->30->40); 在有序单链表中插入新的数据元素x; 将单链表就地逆
- 链表中每个结点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算。 用C语言编写 用以存放输入的二进制数 建立 一个带头结点的线性链表
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- 设计鲁棒性的方法:输入一个链表的头结点,逆序遍历打印该链表出来
- 建立一个不带头结点的单链表,并将其倒置
- 建立一个线性表,依次从键盘输入的正整数,然后依次输出(一个简单参考事例)
- 从键盘输入一个实型数据,求出它的整数部分和小数部分。
- 建立一个简单的链表,它由三个学生数据的结点组成输出各节点中的数据。
- 建立一个带头结点的的单向链表并输出到out53.dat和屏幕上。各节点的值为对应的下表。链表的节点数及输出地文件名作为参数传入
- 编写程序:从键盘上输入若干个整数(以输入-1作为结束标识),输出这些数中的最大值和最小值,要求编写一个函数实现最大值和最小值的求取。
- 将输入的若干整数逆序建立一单链表
- 基于链表:输入若干整数以单链表形式存储起来,然后计算单链表中结点的个数
- 例 9.8 建立一个如图9.9所示的简单链表,它由3个学生数据的结点组成,要求输出各结点中的数据。
- 编写算法实现建立一个带头结点的含n个元素的双向循环链表H,并在链表H中的第i个位置插入一个元素e
- 习题 4.5 从键盘上输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。
- 设计鲁棒性的方法:输入一个链表的头结点,逆序遍历打印该链表出来
- 设计鲁棒性的方法:输入一个链表的头结点,逆序遍历打印该链表出来
- 数据结构——算法之(004)(输入一个单向链表,输出该链表中倒数第k个结点)