Linklist 實作
Linklist的資料結構型態是類似以下的結構
typedef struvt node {
char *data;
struct node *next;
} Listnode;
Listnode n,*p;
他是一組結構包括資料,和指向另一節點的指標
變數n是一個Listnode 節點, p 是一個指向 Listnode 的指標
我實作了一個用linklist建立的一個binary tree
#include
typedef struct node{
int data;
struct node* left;
struct node* right;
} Listnode;
const int Misc[11]={
50,10,33,55,23,12,44,99,100,0,
};
void main(void){
Listnode List1[10],List2[10],*ptr,*p1,*p2;
int num,layer;
for(num=0;num<10;num++){
List1[num].data = Misc[num];
List1[num].left = NULL;
List1[num].right = NULL;
}
for(num=0;num<10;num++){
cout << List1[num].data << endl;
}
// ptr = List1[0];
// p1 = List1[0].left;
// p2 = List1[0].right;
for(num=1;num<10;num++){
ptr = &List1[0];
while(1){
if(List1[num]->data > ptr->data ){
if(ptr->right == NULL){
ptr->right = &List1[num];
break;
}
ptr = ptr->right;
}
if(List1[num]->data < ptr->data ){
if(ptr->left == NULL){
ptr->left = &List1[num];
break;
}
ptr = ptr->left;
}
}
}
ptr = &List1[0];
while(1){
if(ptr->left != NULL){
cout << ptr->data << endl;
ptr = ptr->left;
}else{
break;
}
}
// while(1){
// if(ptr->right != NULL){
// cout << ptr->data << endl;
// ptr = ptr->right;
// }else{
// break;
// }
// }
}
typedef struvt node {
char *data;
struct node *next;
} Listnode;
Listnode n,*p;
他是一組結構包括資料,和指向另一節點的指標
變數n是一個Listnode 節點, p 是一個指向 Listnode 的指標
我實作了一個用linklist建立的一個binary tree
#include
typedef struct node{
int data;
struct node* left;
struct node* right;
} Listnode;
const int Misc[11]={
50,10,33,55,23,12,44,99,100,0,
};
void main(void){
Listnode List1[10],List2[10],*ptr,*p1,*p2;
int num,layer;
for(num=0;num<10;num++){
List1[num].data = Misc[num];
List1[num].left = NULL;
List1[num].right = NULL;
}
for(num=0;num<10;num++){
cout << List1[num].data << endl;
}
// ptr = List1[0];
// p1 = List1[0].left;
// p2 = List1[0].right;
for(num=1;num<10;num++){
ptr = &List1[0];
while(1){
if(List1[num]->data > ptr->data ){
if(ptr->right == NULL){
ptr->right = &List1[num];
break;
}
ptr = ptr->right;
}
if(List1[num]->data < ptr->data ){
if(ptr->left == NULL){
ptr->left = &List1[num];
break;
}
ptr = ptr->left;
}
}
}
ptr = &List1[0];
while(1){
if(ptr->left != NULL){
cout << ptr->data << endl;
ptr = ptr->left;
}else{
break;
}
}
// while(1){
// if(ptr->right != NULL){
// cout << ptr->data << endl;
// ptr = ptr->right;
// }else{
// break;
// }
// }
}
留言