#include<bits/stdc++.h> using namespace std; typedef struct Node { int * element; int len; int listsize; }Sqlist; int initlist(Sqlist &L,int len)///Initialization sequence table { if(len==0) { len = 100; } L.elem=(int *)malloc(len*sizeof(int));///Apply for space if(!L.elem) { return 0; } L.len = 0; L.listsize=100; return 1; } int insertlist(Sqlist &L,int i,int e)///Insert element e at position i { int *p, *q if(i<0||i>L.len)///The value of i is invalid { return 0; } if(L.len>=L.listsize)///Insufficient space { int *newbase = (int *)realloc(L.elem,(L.listsize+10)*sizeof(int));///Re-apply for space if(!newbase) { return 0; } L.elem = newbase; L.listsize+=10; } q=&L.elem[i]; for(p=&L.elem[L.len];p>=q;p--) { *p=*(p-1);///The element is shifted to the right } *q=e; L.len ++; return 1; } int deletelist(Sqlist &L,int e)///Delete all elements whose value is e { int *p, *q int i=0; while(i<L.len) { if(L.elem[i]==e) { q = &L.elem[i]; for(p=q;p<&L.elem[L.len];p++) { *p=*(p+1);///The element moves to the left } L.len--;///Length minus one } else { i++; } } } int deletelist2(Sqlist &L,int i)///Delete the i-th element { int *p, *q q=&L.elem[i-1]; for(p=q;p<&L.elem[L.len];p++) { *p=*(p+1);///The element moves to the left } L.len--;///Length minus one } int sortlist(Sqlist &L)///sort { sort (L.elem, L.elem + L.len); } int printlist(Sqlist &L)///print { for(int i=0;i<L.len;i++) { printf("%d ",L.elem[i]); } printf("\n"); } intmain() { int n; while(~scanf("%d",&n)) { int num; Sqlist L; initlist(L,n); for(int i=0;i<n;i++) { scanf("%d",&num); insertlist(L,i,num); } blacklist (L); printlist(L); int num2; scanf("%d",&num2); deletelist(L,num2); printlist(L); scanf("%d",&num2); deletelist2(L,num2); printlist(L); } return 0; }
Data structure---order table
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=325946431&siteId=291194637
Recommended
Ranking