答案:#include<stdio.h>#include"stdlib.h"
typedef struct node{ //定义了一个结构体类型数据,next指针指向链表的下一个结点
int data;
struct node *next;
}SLIST;
SLIST *creatlist(); //声明创建链表函数
void printlist(SLIST *h);//声明打印链表函数
SLIST *creatlist()//链表函数实现
{
SLIST *start,*this,*new; //定义三个指针:开始、当前、新的结点,
//指针都应该赋值为空,否则不应该使用野指针!!!
int i;
new=(SLIST *)malloc(sizeof(SLIST)); //此句不要,for里面已经有了
start=NULL;//将开始指针指向空,也就是赋值为NULL,this、new也应该这样做。这句是赋值语句
for(i=0;i<10;i++)//循环向链表插入10个元素
{
new=(SLIST *)malloc(sizeof(SLIST));//为新结点的指针new申请内存空间
if(start==NULL)//如果start为空,说明链表里面还没有结点,是一个空链表。这句是判断语句
{
start=new; //直接将开始结点的指针指向新节点就可以了。
}
else{ //程序到这里说明链表中已存在结点
this=start; //把当前节点的指针this指向链表开头start
while(this->next!=NULL) //将当前节点的指针移动到链表结尾,指向最后一个结点,
this=this->next; //当当前节点的下一个指针为空,说明已经到了最后一个结点
this->next=new; //把当前节点的指向下一个结点的指针指向新建立的结点。
}
````````}
```````}
````````
QQ 343469394
#include<stdio.h>
#include"stdlib.h"
typedef struct node
{
int data;
struct node *next;}SLIST;//定义结构体结构
SLIST *creatlist();//声明一个SLIST结构体指针函数
void printlist(SLIST *h);//这里声明一个输出连表的函数
SLIST *creatlist()//函数定义部分
{
SLIST *start,*this,*new;//定义3个结构体SLIST指针
int i;
new=(SLIST *)malloc(sizeof(SLIST));//为new指针开辟存储空间
start=NULL;//结构体SLIST赋NULL值
for(i=0;i<10;i++)/用for循环建立10个结点的连表
{
new=(SLIST *)malloc(sizeof(SLIST));//这里位置应该放在后面才对
if(start==NULL)//如果start指针空让start指向新开辟的连表首地址位置
{start=new;}
else{
this=start;//否则this指针空指向start
while(this->next!=NULL) this=this->next;//用this指针指向新开辟的空间
this->next=new; }
````````}
```````}
````````
好了基本就这意思,不过你程序有不少地方写错了,要是想问详细就先采纳了在加我531351006
哇 写代码的人是不是想用C语言的结构体来模仿C++的类结构啊
这段代码是个典型的C语言接口思想,如果想在这方面有更多的了解可以加我1060385007