当前位置: 首页 > news >正文

个人求职网站如何做游戏网站开发文档

个人求职网站如何做,游戏网站开发文档,深圳知名室内设计公司,广告联盟平台自动赚钱关于单链表的基础部分增删查改的实现和一点理解#xff0c;写在注释里~ SList.h #pragma once #includestdio.h #includestdlib.h #includeassert.h//定义节点的结构 //数据 指向下一个节点的指针 typedef int SLTDataType;typedef struct SListNo…关于单链表的基础部分增删查改的实现和一点理解写在注释里~  SList.h #pragma once #includestdio.h #includestdlib.h #includeassert.h//定义节点的结构 //数据 指向下一个节点的指针 typedef int SLTDataType;typedef struct SListNode {SLTDataType data;//当前节点存储的数据struct SListNode* next;//指向下一个节点的指针 }SLTNode;//打印 void SLTPrint(SLTNode* phead);//申请节点 SLTNode* SLTBuyNode(SLTDataType x);//尾插 void SLTPushBack(SLTNode** pphead, SLTDataType x); //头插 void SLTPushFront(SLTNode** pphead, SLTDataType x); //尾删 void SLTPopBack(SLTNode** pphead); //头删 void SLTPopFront(SLTNode** pphead);//查找 SLTNode* SLTFind(SLTNode* phead, SLTDataType x);//在指定位置之前插入数据 void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x); //在指定位置之后插入数据 void SLTInsertAfter(SLTNode* pos, SLTDataType x);//删除pos节点 void SLTErase(SLTNode** pphead, SLTNode* pos); //删除pos之后的节点 void SLTEraseAfter(SLTNode* pos);//销毁链表 void SListDesTroy(SLTNode** pphead); SList.c #includeSList.h//只要形参变了而实参没有变化那么就什么传的是值而不是地址//data节点存储的数据 //next指向下一个节点的指针//打印 void SLTPrint(SLTNode* phead) {//创建一个临时变量pcur将头节点的值赋予给pcur//pcur指向当前节点的值SLTNode* pcur phead;//判断pcur是否为空while (pcur){//打印指向当前节点存储的数据printf(%d-, pcur-data);//将pucr指向的下一个节点指针的地址赋予给pcurpcur pcur-next;}//当pcur为空时则打印NULLprintf(NULL\n); }//申请节点 SLTNode* SLTBuyNode(SLTDataType x) {SLTNode* newnode (SLTNode*)malloc(sizeof(SLTNode));if (newnode NULL){perror(malloc fail!);exit(1);}newnode-data x;newnode-next NULL;return newnode; }//尾插 // 只要形参变了而实参没有变化那么就什么传的是值而不是地址 //要先找到尾节点再把尾节点的next指针指向新节点newnode void SLTPushBack(SLTNode** pphead, SLTDataType x) {assert(pphead);//*pphead 就是指向第一个节点的指针//申请一个新节点SLTNode* newnode SLTBuyNode(x);//如果为空链表if (*pphead NULL){*pphead newnode;}else//非空链表{//找尾节点//定义一个尾节点链表刚开始头节点和尾节点在同一个位置SLTNode* ptail *pphead;//*pphead一级指针指向第一个节点的指针//判断当尾节点指针指向的下一个位置为NULL结束//当ptail指针指向的下一个位置不为NULL时ptail继续运行while (ptail-next){//把ptail指针指向的下一个位置的指针地址赋予ptailptail ptail-next;}//当ptail指针指向的下一个位置为NULL时ptail指向的就是尾结点//将ptail的next指针指向新节点ptail-next newnode;}}//头插 void SLTPushFront(SLTNode** pphead, SLTDataType x) {assert(pphead);//申请一个新节点SLTNode* newnode SLTBuyNode(x);//*pphead一级指针指向第一个节点的指针//将新节点的next指针指向*pphead 头节点newnode-next *pphead;//然后再把新节点变成新的头节点*pphead*pphead newnode; }//尾删 void SLTPopBack(SLTNode** pphead) {//链表不能为空assert(pphead *pphead);//如果链表只有一个节点if ((*pphead)-next NULL) // - 优先级高于*{free(*pphead);*pphead NULL;}else//如果链表有多个节点{//定义一个函数prev前一个//将prev和ptail都指向头节点 *ppheadSLTNode* prev *pphead;SLTNode* ptail *pphead;//判断ptail的next指针是否为空while (ptail-next){//将prev指向ptail的位置ptail指向ptail的next指针的位置prev ptail;ptail ptail-next;}//如果ptail的next指针不为空则把ptail free掉free(ptail);//将ptail和prev的next指针置为空ptail NULL;prev-next NULL;} }//头删 void SLTPopFront(SLTNode** pphead) {//链表不能为空assert(pphead *pphead);//定义一个next指针将头节点的next指针指向第二个节点next//用来保存第二个节点的位置SLTNode* next (*pphead)-next;//释放头节点free(*pphead);//将第二个节点变成新的头节点*pphead next; }//查找 SLTNode* SLTFind(SLTNode* phead, SLTDataType x) {//定义一个指针pcur指向头节点//这里不论pcur怎么变化都不会影响pheadSLTNode* pcur phead;//while循环遍历while (pcur){//判断当前节点存储的数据是否与要查找的值相同if (pcur-data x){//如果是就返回pcurreturn pcur;}//不是pcur就指向pcur的next指针继续走pcur pcur-next;}//如果结束循环还没有找到就返回NULLreturn NULL; }//在指定位置之 前 插入数据 prev:上一个 void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x) {//链表不能为空assert(pphead *pphead);assert(pos);//插入之前要先申请新节点SLTNode* newnode SLTBuyNode(x);若pos *pphead;说明是头插if (pos *pphead){SLTPushFront(pphead, x);}else//不是头插{//先找到pos的前一个节点//定义一个函数prev指向头节点SLTNode* prev *pphead;//如果prev的下一个指针指向的 不是 pos则进行循环while (prev-next ! pos){//不是prev就指向prev的next指针继续走prev prev-data;}//找到之后//prev-newnode-pos//先将newnode的next指针指向pos再把prev的next指针指向指向newnodenewnode-next pos;prev-next newnode;}}//在指定位置之 后 插入数据 void SLTInsertAfter(SLTNode* pos, SLTDataType x) {assert(pos);SLTNode* newnode SLTBuyNode(x);//pos - newnode - pos-next//先将newnode的next指针指向pos的下一个节点(next)再把pos的next指针指向newnodenewnode-next pos-next;pos-next newnode; }//删除pos节点 void SLTErase(SLTNode** pphead, SLTNode* pos) {assert(pphead *pphead);assert(pos);//pos是头结点if (pos *pphead){//头删SLTPopFront(pphead);}else//pos不是头结点{SLTNode* prev *pphead;while (prev-next ! pos){prev prev-next;}//prev pos pos-next//要先把prev的下一个指针指向pos的下一个指针指向的位置再释放掉pos// 防止找不到pos的下一个指针指向的位置prev-next pos-next;free(pos);pos NULL;} }//删除pos之后的节点 void SLTEraseAfter(SLTNode* pos) {assert(pos pos-next);//定义一个临时指针del将pos的next指针存放到del中SLTNode* del pos-next;//把pos的next指针指向del的next指针//pos del del-nextpos-next del-next;free(del);del NULL; }//销毁链表 void SListDesTroy(SLTNode** pphead) {assert(pphead *pphead);SLTNode* pcur *pphead;while (pcur){SLTNode* next pcur-next;free(pcur);pcur next;}//pcur*pphead NULL; } Test.c  #includeSList.hvoid SListTest01() {//链表是由一个一个的节点组成//创建几个节点SLTNode* node1 (SLTNode*)malloc(sizeof(SLTNode));node1-data 1;SLTNode* node2 (SLTNode*)malloc(sizeof(SLTNode));node2-data 2;SLTNode* node3 (SLTNode*)malloc(sizeof(SLTNode));node3-data 3;SLTNode* node4 (SLTNode*)malloc(sizeof(SLTNode));node4-data 4;//将四个节点连接起来node1-next node2;node2-next node3;node3-next node4;node4-next NULL;//调用链表的打印SLTNode* plist node1;SLTPrint(plist); }void SListTest02() {SLTNode* plist NULL;SLTPushBack(plist, 1);SLTPushBack(plist, 2);SLTPushBack(plist, 3);SLTPushBack(plist, 4);SLTPrint(plist); // 1-2-3-4-NULLSListDesTroy(plist);SLTPrint(plist);//测试查找//SLTNode* find SLTFind(plist, 1);//SLTInsert(plist, find, 11);//SLTInsertAfter(find, 11);//删除pos节点//SLTErase(plist, find);//SLTEraseAfter(find);//SLTPrint(plist);//if (find NULL)//{// printf(没有找到\n);//}//else {// printf(找到了\n);//}//SLTPushBack(NULL, 5);////测试头插//SLTPushFront(plist, 6);//SLTPrint(plist);//SLTPushFront(plist, 7);//SLTPrint(plist);//SLTPushFront(plist, 8);//SLTPrint(plist);//测试头删//SLTPopFront(plist);//SLTPrint(plist);// 2-3-4-NULL//SLTPopFront(plist);//SLTPrint(plist);//SLTPopFront(plist);//SLTPrint(plist);//SLTPopFront(plist);//SLTPrint(plist);//SLTPopFront(plist);//SLTPrint(plist);}int main() {//SListTest01();SListTest02();return 0; } 一点浅解感谢观看~
http://www.ho-use.cn/article/10820393.html

相关文章:

  • WordPress对接微信公众号人员优化方案怎么写
  • 成都微信端网站建广告设计制作税率
  • 移动端网站建设公司怎样做天猫 淘宝网站导购
  • 中国做网站最好的不用登录的传奇游戏
  • 网站论坛建设需要什么资质怎么利用爬虫技术 提高网站排名
  • ps如何做网站轮播图房产网站方案
  • 建站市场3d建模怎么做网站旋转
  • 动易网站模板制作方法网络广告营销典型案例
  • 开发一个网站做公司内部用网站备案删除
  • 各类设计型网站创建网站需要什么
  • 深圳高端网站建设美工wordpress 探针
  • 网站二次开发没人做网站布局框架
  • 网站建设公司推荐 金石下拉上海青浦网站建设公司
  • 国家现代农业示范区建设网站泰安房产中介公司
  • 怎么查网站死链网站 html5
  • 自己做的网站403品牌建设运营方案
  • 网站制作设计正规公司北京关键词优化平台
  • 找logo的网站做网站中显示链接中内容
  • 东莞网站建设乐云seo政务公开做的好的网站有哪些
  • 外贸网站seo推广wordpress 账号 有效期
  • 十堰秦楚网 十堰新闻门户网站深圳建设合同备案 网站
  • 检测网站名 注册红旗渠建设集团网站
  • 网站开发合同管辖权异议wordpress免费建站
  • 网站建设规划面试技巧网站超大文件上传
  • 自己怎样做公司广告视频网站学校网站asp源码
  • 投资建设个什么网站好黄山旅游
  • 网业翻译成中文做seo推广公司
  • 小视频网站开发网站建设需要了解哪些方面
  • 小型网站项目策划书怎么做后台网站一键更新
  • 采购网站建设招标方案珠海手机微信网站建设小程序开发