总觉得别人写的好复杂,不如就放个自己的代码在这里吧。ps. C和C++似乎在结构体上还是有些细节不一样的。
代码是一道机考题,建立一个升序链表并遍历输出:
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
struct node{
int val;
node *next;
node(){
val = 0;
next = NULL;
}
};
void insert(node *head, node *x){
if(head->next == NULL){
head->next = x;
return;
}
else if(head->val <= x->val && head->next->val >= x->val){
x->next = head->next;
head->next = x;
return;
}
else return insert(head->next, x);
}
int main(){
int n;
cin >> n;
node *head;
head = new node();
for(int i=0; i<n; i++){
node *x;
x = new node();
cin >> x->val;
insert(head, x);
}
node *p;
p = head->next;
for(int i=0; i<n; i++){
cout<<p->val;
if(i!=n-1) cout<<" ";
p = p->next;
}
return 0;
}