- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一部分 typedefine 的用法
# include stdio.h
typedef struct Student
{
int sid;
char name[100];
char sex;
}*PSTU, STU;//等价于STU代表struct Student, PSTU代表了struct Student *
int main( void )
{
STU st;//struct Studtn st;
PSTU ps = st;//struct Student *ps = st;
ps-sid = 99;
printf( %d\n, ps-sid );
return 0;
}
第二部分 链表部分的全部代码
#include stdio.h
#include malloc.h
#include stdlib.h
struct node
{
int data;
struct node * next;
};
//创建一个链表,返回phead
struct node * creat_list() //函数返回类型为struct node * 类型
{
struct node * phead=NULL;
struct node * ptail=NULL;
struct node * pnew=NULL;
int i;
int len;
int val;
phead=(struct node *) malloc(sizeof (struct node));
if (phead==NULL)
{
printf(动态分配失败\n);
exit(-1);
}
phead-next=NULL;
ptail=phead;
printf(请输入链表的长度len:\n);
scanf(%d,len);
for(i=0;ilen;i++)
{
printf(请输入链表的第%d个数值\n,i+1);
scanf(%d,val);
pnew=(struct node *)malloc(sizeof(struct node));
if (pnew==NULL)
{
printf(动态内存分配失败!\n);
exit(-1);
}
pnew-data=val;
pnew-next=NULL;
ptail-next=pnew;
ptail=pnew;
}
return phead;
}
//输出链表
void show_list(struct node * phead)
{
struct node * p;
p=phead-next ;
while (p!=NULL)
{
printf(%5d,p-data);
p=p-next ;
}
printf(\n);
}
//判断链表是否为空
bool is_empty(struct node * phead )
{
if (phead-next==NULL)
return true ;
else
return false ;
}
//求链表的长度
int length_list(struct node * phead)
{
int len=0;
struct node * p;
p=phead-next;
while (p!=NULL)
{
++len;
p=p-next;
}
return len;
}
//对链表进行排序
void sort_list(struct node * phead)
{
int l;
int i,j,t;
struct node * p, * q;
l=length_list(phead);
for(i=0,p=phead-next;il-1;i++,p=p-next)
{
for(j=i+1,q=p-next;jl;j++,q=q-next)
{
if (p-dataq-data)
{
t=p-data;
p-data=q-data;
q-data=t;
}
}
}
}
//在链表中插入数据
void insert_list(struct node * phead,int pos, int val)
{
int i;
struct node * p=phead-next;
struct node * pnew;
if (p==NULL)
{
printf(程序出错!\n);
exit(-1);
}
for(i=0;ipos-1;i++)
{
p=p-next;
++i;
文档评论(0)