共有データ構造学習
私は新入生、最近自習データ構造、自分のブログを書くので、私が書き込みブログを始めた重い心で、成果を学習監修しています。ただ、このコンパイラを使用した時は非常に良いではありません開始、前任者の大物も多く、指導の多くを含めてください。
私たちは、最初にすべての、それはリストを作成し、リストから共有に始まりました。
のリストを作成します。1.
いくつかの単語の男は、コードの前に言いました。
struct list//链表的结构体
{
int num;
struct list*next;
};
struct list*create(int n)//这里的n用来存储链表的长度;
{
int i;
struct list*p;
struct list*head;
p=head=(struct list*)malloc(sizeof(struct list));//首先创键head节点,p节点。
for(i=0;i<n;i++)//循环用来输入数据
{
struct list*s=(struct list*)malloc(sizeof(struct list));/*一个临时节点s*/
s->num=i;//我们这里为了方便,直接将i的值赋值给节点,在实际的创建中,可以在这里用scanf输入数据
p->next=s;//将p连接上s
p=s;//然后p再到s上
}
p->next=NULL;//链表创建结束,将最后一个节点的next设为NULL
head=head->next;//因为我们的head节点没有值,并不是头,我们要把head指向头,也就是head下一个;
return head;//返回头指针
}
に次のテストコード
#include<stdio.h>
#include<stdlib.h>
struct Node
{
int data;
struct Node *next;
};
struct Node *create(int n)
{
int i;
struct Node* head;
struct Node*p;
p=head=(struct Node *)malloc(sizeof(struct Node));
for(i=0;i<n;i++)
{
struct Node*s=(struct Node *)malloc(sizeof(struct Node));
s->data=i;
p->next=s;
p=s;
}//
p->next=NULL;
head=head->next;
printf("ok");
return head;
}//
int main()
{
int n;
struct Node *head;
printf("输入节点的个数:");
scanf("%d",&n);
head=create(n);
system("pause");
return 0;
}
最後に、我々は関数本体は、(「OK」)のprintfを追加作成するかどうかを検出する機能を作成するためには、機能が正常に実行されるかどうかを判断するための文