zoukankan      html  css  js  c++  java
  • 链表插入(线性表)

    Time Limit: 1 Sec  Memory Limit: 128 MB

    Submit: 173  Solved: 67
    [Submit][Status][Web Board]

    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

    511 7 8 9 10

    Sample Output

    7 8 9 10 11
    #include<iostream>
    using namespace std;
    struct mm
    {
    int a;
    mm *p;
    
    };
    int main()
    {
    	int n,s;
    	mm *head,*k,b,*h;
    	cin>>n>>b.a;
    	b.p=NULL;
    	s=n;
    	n--;
    	if(n==0)
    	{cout<<b.a<<' ';
    	return 0;
    	}
    	head=new mm;
    	k=head;
    	while(n--)
    	{
    		cin>>k->a;
    		k->p=new mm;
    		k=k->p;
    		k->p=NULL;
    	}
    	delete k;
    	h=k=head;n=s;
    	if(b.a<head->a)
    	{b.p=head;
    	head=&b;}
    	else
    	{
    	
    for(;s>0;s--)
    {
    	if(b.a<k->a)
    	{b.p=k;
    	h->p=&b;
    	break;
    	}
    	if(s==2&&k->a<b.a)
    	{k->p=&b;
    	break;}
    h=k;
    k=k->p;
    }
    
    	}
    k=head;
    while(n--)
    {
    cout<<k->a<<' ';
    k=k->p;}
    
    
    
    
    return 0;}

    心得:偷了点懒,嘎嘎,链表还是比较麻烦。
  • 相关阅读:
    【无旋转treap】模板
    线性选择算法好题
    【codeforces】305C GCD,容斥
    双连通
    线段树(3)
    线段树(2)
    线段树
    2015 Multi-University Training Contest 2
    2015 Multi-University Training Contest 1
    Codeforces Round #302 (Div. 1)
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3767016.html
Copyright © 2011-2022 走看看