链表插入(线性表)
2014-04-02 22:47
253 查看
Description
(线性表)已知一单向链表,从第二个结点至表尾递增有序,(设a1<x<an)如下图(“第二个结点至表尾”指a1..an )。试编写程序,将第一个结点删除并插入表中适当位置,使整个链表递增有序。
Input
输入长度n:7
输入数据:4 1 2 3 6 8 9
Output
1 2 3 4 6 8 9
Sample Input
5
11 7 8 9 10
Sample Output
7 8 9 10 11
(线性表)已知一单向链表,从第二个结点至表尾递增有序,(设a1<x<an)如下图(“第二个结点至表尾”指a1..an )。试编写程序,将第一个结点删除并插入表中适当位置,使整个链表递增有序。
Input
输入长度n:7
输入数据:4 1 2 3 6 8 9
Output
1 2 3 4 6 8 9
Sample Input
5
11 7 8 9 10
Sample Output
7 8 9 10 11
#include <iostream> using namespace std; struct number { int num; number *next; }; number *creatlink(number *head,int n); number *insertlink(number *head); int main() { number *p,*head; head=NULL; int n; cin>>n; head=creatlink(head,n); head=insertlink(head); p=head; while(p!=NULL) {cout<<p->num<<' '; p=p->next; } return 0; } number *creatlink(number *head,int n) { number *p,*s; p=head; int i; for(i=0;i<n;i++) { s=new number; cin>>s->num; if(head==NULL) head=s; else p->next=s; p=s; } p->next=NULL; return head; } number *insertlink(number *head) { number *p,*s,*q; p=head; s=new number; s->num=p->num; head=p->next; p=head; if(head==NULL) head=s; else { while(s->num>p->num&&p->next!=NULL) {q=p; p=p->next; } if(s->num<=p->num) {if(head==p) {head=s; s->next=p; } else {q->next=s; s->next=p; } } else { p->next=s; s->next=NULL; } } return head; }
相关文章推荐
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- 线性表之<链表linklist>的储存及插入、删除-C代码实现
- 线性链表的实现插入和删除
- 线性单链表 初始化 插入 取出 头插法 合并升序排列
- 链表插入(线性表)
- 链表插入(线性表)
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- 链表插入(线性表)
- 线性表的链式存储格式基本操作:创建链表、插入、删除、查找、求表长、打印链表
- 线性表之单向链表的创建、插入、删除和清除
- 很简单的数据结构:链表线性存储的创建、取数据、数据添加、数据插入、数据删除
- 对线性表理解以及C语言实现链表的插入删除等操作。
- 试编写在无头结点的单链表上实现线性表的插入操作的算法,并和带头结点的单链表上的插入操作的算法进行比较
- 线性链表的查找插入删除算法
- 线性链表 查找 插入 删除 创建 merge
- 单链表的建立、插入、删除等简单操作
- 郝斌数据结构 28 链表的插入和删除算法的演示
- 链表插入排序
- LintCode 链表插入排序
- 线性表之顺序表和链表