二级指针
int n,m;
int **mat;
cin>>n >> m;
mat = new int*[n];
for(int i = 0; i < n; i++){
mat[i] = new int[m];
for(int j = 0; j < m; j++){
cin >> mat[i][j];
}
}
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cout<<mat[i][j]<<" ";
}cout<<endl;
}
for(int i = 0; i < n; i++){
delete[] mat[i];
}
delete[] mat;
链表冒泡
#include<bits/stdc++.h>
using namespace std;
struct node{
node* nxt;
string data;
}*head,*tail,*p,*q,*r;
void insert(string n){
p = head;
while(p->nxt!=tail){
p = p->nxt;
}
q = new node;
p->nxt = q;
q->data = n;
q->nxt = tail;
}
void print(){
p = head->nxt;
while(p!=tail){
cout<<p->data<<endl;
p = p->nxt;
}
cout<<endl;
}
node* Swap(node* front,node* l,node* r){
front->nxt = r;
l->nxt = r->nxt;
r->nxt = l;
return front;
}
int main(){
int t,n;
cin >> t;
while(t--){
cin >> n;
head = new node;
tail = new node;
head->nxt = tail;
head->data = tail->data = "-1";
tail->nxt = head;
for(int i = 0; i < n; i++){
string now;
cin>>now;
insert(now);
}
node* st = head;
for(int i = 0; i < n; i++){
p = st;
q = p->nxt;
r = q->nxt;
while(r!=tail){
if(q->data < r->data){
p = Swap(p,q,r);
q = p->nxt;
r = q->nxt;
}
p = p->nxt;
q = q->nxt;
r = r->nxt;
}
}
print();
p = head;
while(p!=nullptr){
q = p;
p = p->nxt;
delete q;
}
}
}