郑州网站seo外包公司,仿 wordpress,wordpress sensei,东营市信息网官网#xfeff;#xfeff;#xfeff;#xfeff;#xfeff;#xfeff;题目解决代码及点评/*
功能#xff1a;插入排序。许多玩牌的人是以这样的方式来对他们手中的牌进行排序的#xff1a;设手中原有3张牌已排好序#xff0c;抓1张新牌#xff0c;若这张新牌的次序在… 题目解决代码及点评/*
功能插入排序。许多玩牌的人是以这样的方式来对他们手中的牌进行排序的设手中原有3张牌已排好序抓1张新牌若这张新牌的次序在原来的第2张牌之后第3张牌之前那么就把这张新牌放在第3张牌的位置上原来的第3张改为第4张然后再抓新牌。按着这个算法编写一个排序程序。注开始一张牌也没有从第一张牌开始抓起。时间23:34 2013/10/24
*/#includestdio.h
#includestdlib.hstruct card
{int num;struct card *pNext;
};typedef struct card CARD;CARD *initList(int); //链表初始化声明第一张牌
void insertList(CARD *p,int n); //在第i个元素后插入
void showAll(CARD *p);void main()
{CARD *pHeadinitList(2); //头结点创建nextNullinsertList(pHead,4);insertList(pHead,3);insertList(pHead,1);showAll(pHead);system(pause);
}void showAll(CARD *p)
{do {printf(%d \n,p-num);} while((p-pNext!NULL) (pp-pNext));
}void insertList(CARD *p,int n)
{CARD *pNew(CARD *)malloc(sizeof(CARD)); //分配新结点if(pNewNULL)return;if(np-num) //判断n是否小于头结点 如果小于将头结点的值与n交换{int tempp-num;p-numn;ntemp;}CARD *Priorp; //用来保存前结点while(np-num p-pNext!NULL) //当n大于当前结点时指针向后移知道小于当前结点或next为NULL时终止{Priorp; //循环结束后为当前结点的前结点pp-pNext;}if(np-num) //当n小于当前结点则在当前结点前插入n{Prior-pNextpNew;pNew-pNextp;pNew-numn;}if(p-pNextNULL np-num) //假设牌码最大则在链表尾部插入{p-pNextpNew;pNew-pNextNULL;pNew-numn;}}
CARD *initList(int n)
{CARD *p(CARD *)malloc(sizeof(CARD));if(pNULL)return NULL; //分配失败返回空p-numn;p-pNextNULL;return p;
}代码编译以及运行由于资源上传太多资源频道经常被锁定无法上传资源同学们可以打开VS2013自己创建工程步骤如下1新建工程2选择工程3创建完工程如下图4增加文件右键点击项目5在弹出菜单里做以下选择6添加文件7拷贝代码与运行程序运行结果代码下载http://download.csdn.net/detail/yincheng01/6681845解压密码c.itcast.cn 转载于:https://www.cnblogs.com/new0801/p/6177435.html