ACM_线性表板子
ฅ'ω'ฅ♪

ACM_线性表板子

B话少说,这里是用来存板子的

数组实现:

/*
          .
         ';;;;;.
        '!;;;;;;!;`
       '!;|&#@|;;;;!:
      `;;!&####@|;;;;!:
    .;;;!&@$$%|!;;;;;;!'.`:::::'.
     '!;;;;;;;;!$@###&|;;|%!;!$|;;;;|&&;.
     :!;;;;!$@&%|;;;;;;;;;|!::!!:::;!$%;!$%`    '!%&#########@$!:.
     ;!;;!!;;;;;|$$&@##$;;;::'''''::;;;;|&|%@$|;;;;;;;;;;;;;;;;!$;
     ;|;;;;;;;;;;;;;;;;;;!%@#####&!:::;!;;;;;;;;;;!&####@%!;;;;$%`
    `!!;;;;;;;;;;!|%%|!!;::;;|@##%|$|;;;;;;;;;;;;!|%$#####%;;;%&;
    :@###&!:;;!!||%%%%%|!;;;;;||;;;;||!$&&@@%;;;;;;;|$$##$;;;%@|
    ;|::;;;;;;;;;;;;|&&$|;;!$@&$!;;;;!;;;;;;;;;;;;;;;;!%|;;;%@%.
   `!!;;;;;;;!!!!;;;;;$@@@&&&&&@$!;!%|;;;;!||!;;;;;!|%%%!;;%@|.
%&&$!;;;;;!;;;;;;;;;;;|$&&&&&&&&&@@%!%%;!||!;;;;;;;;;;;;;$##!
!%;;;;;;!%!:;;;;;;;;;;!$&&&&&&&&&&@##&%|||;;;!!||!;;;;;;;$&:
':|@###%;:;;;;;;;;;;;;!%$&&&&&&@@$!;;;;;;;!!!;;;;;%&!;;|&%.
 !@|;;;;;;;;;;;;;;;;;;|%|$&&$%&&|;;;;;;;;;;;;!;;;;;!&@@&'
  .:%#&!;;;;;;;;;;;;;;!%|$$%%&@%;;;;;;;;;;;;;;;;;;;!&@:
  .%$;;;;;;;;;;;;;;;;;;|$$$$@&|;;;;;;;;;;;;;;;;;;;;%@%.
    !&!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|@#;
     `%$!;;;;;;;;;;;$@|;;;;;;;;;;;;;;;;;;;;;;;;!%$@#@|.
       .|@%!;;;;;;;;;!$&%||;;;;;;;;;;;;;;;;;!%$$$$$@#|.
           ;&$!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;%#####|.
           |##$|!;;;;;;::'':;;;;;;;;;;;;;!%$$$@#@;
          ;@&|;;;;;;;::'''''':;;;;;;;|$&@###@|`
        .%##@|;;;;:::''''''''''::;!%&##$'
      `$##@$$@@&|!!;;;:'''''::::;;;;;|&#%.
    ;&@##&$%!;;;;;;::''''''''::;!|%$@#@&@@:
     .%@&$$|;;;;;;;;;;:'''':''''::;;;%@#@@#%.
    :@##@###@$$$$$|;;:'''':;;!!;;;;;;!$#@@#$;`
     `%@$$|;;;;;;;;:'''''''::;;;;|%$$|!!&###&'
     |##&%!;;;;;::''''''''''''::;;;;;;;!$@&:`!'
    :;!@$|;;;;;;;::''''''''''':;;;;;;;;!%&@$:                !@#$'
      |##@@&%;;;;;::''''''''':;;;;;;;!%&@#@$%:            '%%!%&;
      |&%!;;;;;;;%$!:''''''':|%!;;;;;;;;|&@%||`         '%$|!%&;
      |@%!;;!!;;;||;:'''''':;%$!;;;;!%%%&#&%$&:        .|%;:!&%`
      !@&%;;;;;;;||;;;:''::;;%$!;;;;;;;|&@%;!$;       `%&%!!$&:
      '$$|;!!!!;;||;;;;;;;;;;%%;;;;;;;|@@|!$##;      !$!;:!$&:
       |#&|;;;;;;!||;;;;;;;;!%|;;;;!$##$;;;;|%'   `%$|%%;|&$'
        |&%!;;;;;;|%;;;;;;;;$$;;;;;;|&&|!|%&&;  .:%&$!;;;:!$@!
        `%#&%!!;;;;||;;;;;!$&|;;;!%%%@&!;;;!!;;;|%!;;%@$!%@!
        !&!;;;;;;;;;||;;%&!;;;;;;;;;%@&!;;!&$;;;|&%;;;%@%`
       '%|;;;;;;;;!!|$|%&%;;;;;;;;;;|&#&|!!||!!|%$@@|'
       .!%%&%'`|$;     :|$#%|@#&;%#%.
*/
#pragma comment(linker,"/STACK:1024000000,1024000000")
#pragma GCC optimize(2)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <experimental/string_view>
#define lodou long double
#define lll __int128
#define INmF 0x3f3f3f3f
#define lbt(x) (x&(-x))
#define mes(a,b) memset(a,b,sizeof(a))
#define qwq(a,b) for(int i=a ;i<=b;++i)
#define qeq(a,b) for(int j=a ;j<=b;++j)
#define IOS ios::sync_with_stdio(false)
#define UPCASE( c ) ( ((c) >= 'c' && (c) <= 'z') ? ((c) - 0x20) : (c) )
#define pb push_back
#define mkp make_pair
using namespace std;
using namespace __gnu_pbds;

using pii=pair<int,int>;
using Balanced_Tree=tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>;
Balanced_Tree seq;


const double Eps = 1e-8 ;
const double pi  = acos(-1) ;
const long long mod = 1e9+7 ;
typedef long long int ll;


inline ll pow_mod (ll a,ll b) {ll res=1;a%=mod; if(b<0) return -1; for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
inline ll fas_mul (ll a,ll b) { return ( (a*b-(ll)(((long double)a*b+0.5)/mod)*mod)%mod+mod)%mod ; }


namespace io {

    #define in(a) a=read()
    #define out(a) write(a)
    #define outn(a) out(a),putchar('\n')

    #define I_int __int128
    inline I_int read() {
        I_int x = 0 , f = 1 ; char c = getchar() ;
        while( c < '0' || c > '9' ) { if( c == '-' ) f = -1 ; c = getchar() ; }
        while( c >= '0' && c <= '9' ) { x = x * 10 + c - '0' ; c = getchar() ; }
        return x * f ;
    }
    char F[ 200 ] ;
    inline void write( I_int x ) {
        if( x == 0 ) { putchar( '0' ) ; return ; }
        I_int tmp = x > 0 ? x : -x ;
        if( x < 0 ) putchar( '-' ) ;
        int cnt = 0 ;
        while( tmp > 0 ) {
            F[ cnt ++ ] = tmp % 10 + '0' ;
            tmp /= 10 ;
        }
        while( cnt > 0 ) putchar ( F[ -- cnt ] ) ;
    }
    #undef I_int

}using namespace io ;

/*
线性表
*/
const int Maxn=10050 ;
template <class DataType>
class SqList
{
  private :
    DataType data[Maxn] ;       //使用数组实现的顺序表
    int len ;
  public :
    SqList(){
      len = 0 ;
    }
    SqList( DataType arr[] , int n ){
      if( n>Maxn )
        puts( "It is IMPOSSIBLE " ) ;
      else{
        for( int i=-1 ; ~(i-n-1) ; data[i]=arr[++i] ) ;
        len=n ;
      }
    }~SqList(){

    }
    int length(){
      return len ;
    }
    DataType find( int i ){
      if( i<1 || i>len )
        puts( "It is IMPOSSIBLE " ) ;
      else
        return data[i-1] ;
    }
    int locate( DataType x ){
      if( !binary_search( data , data+len , x ) )
        return 0 ;
        //puts( "It is IMPOSSIBLE " ) ;
      else
        for( int i=0 ; ~(i-len-1) ; ++i )
          if( data[i]==x ) return i+1 ;
    }
    void insert( int i , DataType x ){
      if( i>len+1 || i<1 || len>=Maxn )
        puts( "It is IMPOSSIBLE " ) ;
      else{
        for( int j=len ; j>=i ; --j )
          data[j] = data[j-1] ;
        data[i-1]=x ;
        ++len ;
      }
    }
    DataType dell( int i ){
      if( !len || i<1 || i>len )
        puts( "It is IMPOSSIBLE " ) ;
      else{
        int temp=data[i-1];
        for( int j=i ; ~(j-len-1) ; ++j )
          data[j-1]=data[j] ;
        --len ;
        return temp ;
      }
    }
    void printList(){
      for( int i=-1 ; ~(i-len-1) ; printf("%d ",data[++i]) ) ;
      puts("") ;
    }
};
int main()
{
  SqList<int> p ;
  p.insert(1,5) ;
  p.insert(2,9) ;
  p.printList() ;
  p.insert(2,3) ;
  p.printList() ;
  outn(p.find(3));
  p.dell(2) ;
  p.printList() ;
}

链表:

#pragma comment(linker,"/STACK:1024000000,1024000000")
#pragma GCC optimize(2)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <experimental/string_view>
#define lodou long double
#define lll __int128
#define INmF 0x3f3f3f3f
#define lbt(x) (x&(-x))
#define mes(a,b) memset(a,b,sizeof(a))
#define qwq(a,b) for(int i=a ;i<=b;++i)
#define qeq(a,b) for(int j=a ;j<=b;++j)
#define IOS ios::sync_with_stdio(false)
#define UPCASE( c ) ( ((c) >= 'c' && (c) <= 'z') ? ((c) - 0x20) : (c) )
#define pb push_back
#define mkp make_pair
using namespace std;
using namespace __gnu_pbds;

using pii=pair<int,int>;
using Balanced_Tree=tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>;
Balanced_Tree seq;


const double Eps = 1e-8 ;
const double pi  = acos(-1) ;
const long long mod = 1e9+7 ;
typedef long long int ll;


inline ll pow_mod (ll a,ll b) {ll res=1;a%=mod; if(b<0) return -1; for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
inline ll fas_mul (ll a,ll b) { return ( (a*b-(ll)(((long double)a*b+0.5)/mod)*mod)%mod+mod)%mod ; }


namespace io {

    #define in(a) a=read()
    #define out(a) write(a)
    #define outn(a) out(a),putchar('\n')

    #define I_int __int128
    inline I_int read() {
        I_int x = 0 , f = 1 ; char c = getchar() ;
        while( c < '0' || c > '9' ) { if( c == '-' ) f = -1 ; c = getchar() ; }
        while( c >= '0' && c <= '9' ) { x = x * 10 + c - '0' ; c = getchar() ; }
        return x * f ;
    }
    char F[ 200 ] ;
    inline void write( I_int x ) {
        if( x == 0 ) { putchar( '0' ) ; return ; }
        I_int tmp = x > 0 ? x : -x ;
        if( x < 0 ) putchar( '-' ) ;
        int cnt = 0 ;
        while( tmp > 0 ) {
            F[ cnt ++ ] = tmp % 10 + '0' ;
            tmp /= 10 ;
        }
        while( cnt > 0 ) putchar ( F[ -- cnt ] ) ;
    }
    #undef I_int

}using namespace io ;

template <class datatype>
struct node
{
  datatype data ;
  node<datatype> *next ;
};
template <class datatype>
class linkList{//鍗曢摼琛?
  private :
    node<datatype> *first ;
  public :
    linkList(){
      first = new node< datatype > ;
      first ->next = NULL ;
    }
    linkList( datatype arr[] , int n ){//姝や箖澶存彃娉?
      first = new node< datatype > ;
      first ->next =NULL ;
      for( int i=0 ; i<n ; ++i ){
        node< datatype >*s = new node < datatype > ;
        s->data = arr[i] ;
        s->next = first->next ;
        first->next = s ;
      }
    }~linkList(){
      while( first!=NULL ){
        node < datatype > *q = first ;
        first = first->next ;
        delete q ;
      }
    }
    int length(){//闇€瑕佹壂鎻?
      node <datatype> *p = first->next ;
      int cnt = 0 ;
      while( p!=NULL ){
        p=p->next ;
        ++cnt ;
      }
      return cnt ;
    }
    datatype find( int i ){
      node < datatype > *p=first->next ;
      int cnt =1 ;
      while( p!=NULL && cnt<i ){
        p=p->next ;
        ++cnt ;
      }
      if( p==NULL )
        throw "Location" ;
      else return p->data ;
    }
    int locate( datatype x ){
      node < datatype > *p=first->next ;
      int cnt=1 ;
      while( p!=NULL ){
        if( p->data== x ) 
          return cnt ;
        p=p->next ;
        ++cnt ;
      }
      return 0 ;
    }
    void insert( int i , datatype x ){
      node < datatype > *p=first ;
      int cnt=0 ;
      while( p!=NULL && cnt <i-1 ){
        p=p->next ;
        ++cnt ;
      }
      if( p==NULL )
        throw "Location" ;
      else{
        node < datatype > *s= new node < datatype > ;
        s->data = x ;
        s->next = p->next ;
        p->next = s ;
      }
    }
    datatype dell( int i ){
      node < datatype > *p=first ;
      int cnt=0 ;
      while( p!=NULL && cnt<i-1 ){
        p=p->next ;
        ++cnt ;
      }
      if( p==NULL || p->next ==NULL )
        throw "Location" ;
      else{
        node < datatype > *q=p->next ;
        int temp = q->data ;
        p->next = q->next ;
        return temp ;
      }
    }
    void printList(){
      node < datatype > *p=first->next ;
      while( p!=NULL ){
        outn(p->data);
        p=p->next ;
      }
      puts("");
    }
};
int main(int argc, char const *argv[])
{
  linkList<int> p ;
  p.insert( 1, 6 ) ;
  p.insert( 2, 9 ) ;
  p.printList() ;
  p.insert( 2, 3 ) ;
  p.printList() ;
  outn(p.find(2));
  outn(p.locate(9));
  outn( p.length() );
  p.dell(2);
  p.printList() ;
  return 0;
}
CANCEL

-评论-

Here you can post what you want to say, if you have more information please contact me by the following way.

-昵称-
-QQ-
-邮箱-
想说些什么?
-SUBMIT-

-电联 Phone-

+86 18520664652

-邮箱 Email-

boogieLing_o@163.com

boogieLing_o@qq.com

Your name. OS platform Browser model

What do you want to say?

created time

游說萬乘苦不早,著鞭跨馬涉遠道。

阿凌的貓爬架

幸會,

激活Ubuntu

转到“设置”以激活Ubuntu。

R0's board.