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

网站宣传活动怎么做apache网站拒绝访问

网站宣传活动怎么做,apache网站拒绝访问,营销策划经典案例,营销型网站建设 合肥单向链表的创建单向链表的插入单向链表的删除及清空单向链表的修改单向链表的查找单向链表的逆序 一、单向链表的创建 LinkList *CreateLinkList() {LinkList *ll malloc(sizeof(LinkList));if (NULL ll) {fprintf(stderr, "CreateLink malloc");return NULL;}ll…
  • 单向链表的创建
  • 单向链表的插入
  • 单向链表的删除及清空
  • 单向链表的修改
  • 单向链表的查找
  • 单向链表的逆序

一、单向链表的创建

LinkList *CreateLinkList() {LinkList *ll = malloc(sizeof(LinkList));if (NULL == ll) {fprintf(stderr, "CreateLink malloc");return NULL;}ll->head = NULL;ll->clen = 0;return ll;
}

判断链表是否为空:

int IsEmptyLinkList(LinkList *ll)
{return 0 == ll->clen;
}

获取链表长度:

int GetSizeLinkList(LinkList *ll)
{return ll->clen;
}

遍历链表并输出:

int ShowLinkList(LinkList *ll)
{LinkNode *tmp = ll->head;int len = GetSizeLinkList(ll);int i ;for(i = 0 ; i < len ; ++i){printf("%s %c %d %d\n",tmp->data.name,tmp->data.sex,tmp->data.age,tmp->data.score);tmp = tmp->next;}return 0;
}

二、单向链表的插入

1.头插法:

int InsertHeadLinkList(LinkList *ll, DATATYPE *data)
{LinkNode *newnode = malloc(sizeof(LinkNode));if (NULL == newnode) {fprintf(stderr, "InsertHeadLinkList malloc");return 1;}memcpy(&newnode->data,data,sizeof(DATATYPE));//memcpy(&newnode->data,data,sizeof(DATATYPE));newnode->next = NULL;if(IsEmptyLinkList(ll)){ll->head = newnode;}else{newnode->next = ll->head;ll->head = newnode;}ll->clen++;return 0;
}

2.尾插法:

int InsertTailLinkList(LinkList *ll, DATATYPE *data)
{if(IsEmptyLinkList(ll)){return InsertHeadLinkList(ll,data);}else{LinkNode *newnode = malloc(sizeof(LinkNode));if (NULL == newnode) {fprintf(stderr, "InsertTailLinkList malloc");return 1;}memcpy(&newnode->data,data,sizeof(DATATYPE));//memcpy(&newnode->data,data,sizeof(DATATYPE));newnode->next = NULL;LinkNode *tmp1 = ll->head;while(tmp1->next){tmp1 = tmp1->next;}tmp1->next = newnode;ll->clen++;}return 0;
}

3.指定位置插入(重点掌握)

int InsertPosLinkList(LinkList *ll, DATATYPE *data, int pos)
{int len = GetSizeLinkList(ll);if(pos < 0 || pos > len){return 1;}if(0 == pos){return InsertHeadLinkList(ll, data); //cha ru 1 ge jie dian malloc 2 ci hui xie lou nei cun}else if(len == pos){return InsertTailLinkList(ll, data);}else{LinkNode *newnode = malloc(sizeof(LinkNode));if (NULL == newnode) {fprintf(stderr, "InsertPosLinkList malloc");return 1;}memcpy(&newnode->data,data,sizeof(DATATYPE));newnode->next = NULL;int i = 0;LinkNode *tmp = ll->head;while(tmp->next){++i;if(i == pos){newnode->next = tmp->next;tmp->next = newnode;break;}tmp = tmp->next;}ll->clen++;}return 0;
}

三、单向链表的删除及清空

1.单向链表的删除(指定名字对应的结点)

int DeleteLinkList(LinkList *ll,char *name)
{LinkNode *tmp = ll->head;if(IsEmptyLinkList(ll)){return 1;}if(0 == strcmp(tmp->data.name,name)){ll->head = ll->head->next;free(tmp);ll->clen--;return 0;}while(tmp->next){if (0 == strcmp(tmp->next->data.name,name)){LinkNode *tmp2 = tmp->next;tmp->next = tmp->next->next;free(tmp2);ll->clen--;return 0;}tmp = tmp->next;}return 1;
}

2.单向链表的清空:

int DestroyLinkList(LinkList **ll)
{LinkNode *tmp = (*ll)->head;while(tmp){if(NULL == tmp){break;}(*ll)->head = (*ll)->head->next;free(tmp);tmp = (*ll)->head;}free(*ll);*ll = NULL;return 0;
}

四、单向链表的修改

int ModifyLinkList(LinkList *ll,char *name,DATATYPE *data)
{DATATYPE *tmp = FindLinkList(ll,name);if(NULL == tmp){return 1;}memcpy(tmp, data, sizeof(DATATYPE));return 0;
}

五、单向链表的查找

1.查找指定姓名的数据域

DATATYPE *FindLinkList(LinkList *ll,char *name)
{LinkNode *tmp = ll->head;while(tmp){if(0 == strcmp(tmp->data.name,name)){return &tmp->data;}tmp = tmp->next;}return NULL;
}

2.查找链表的中间结点位置

LinkNode *Findmiddleofpoint(LinkList *ll)
{LinkNode *slow = ll->head;LinkNode *fast = ll->head;while(fast){fast = fast->next;if(fast == NULL ){break;}slow = slow->next;fast = fast->next;}return slow;
}

3.查找链表中倒数第k个结点位置

LinkNode *Findlastofpoint(LinkList *ll, int k)
{if(IsEmptyLinkList(ll)){return NULL;}if(k > ll->clen || k <= 0){return NULL;}LinkNode *slow = ll->head;LinkNode *fast = ll->head;int i;for (i = 0; i < k;++i){fast = fast->next;}while(fast){fast = fast->next;slow = slow->next;}return slow;
}

六、单向链表的逆序

int InverseLinkList(LinkList *ll)
{if(IsEmptyLinkList(ll)){return 1;}int len = GetSizeLinkList(ll);if( 1 == len){return 0;}LinkNode *prev = NULL;LinkNode *tmp = ll->head;LinkNode *next = ll->head->next;while(1){tmp->next = prev;prev = tmp;tmp = next;if(NULL == tmp){break;}next = next->next;}ll->head = prev;return 0;
}

总结:

        单向链表的优点:插入和删除的时间复杂度为O(1),优于顺序表。且在空间性能上不需要预先分配,大小可变,能够动态分配满足要求。

        单向链表的缺点:查找的时间复杂度为O(n)。


文章转载自:

http://jTkgxVX5.yzfrh.cn
http://jYVxZXjt.yzfrh.cn
http://6a2DNvgz.yzfrh.cn
http://8I5HRdfL.yzfrh.cn
http://j2j3qH7x.yzfrh.cn
http://lz1cWXYc.yzfrh.cn
http://0WYzDaG1.yzfrh.cn
http://yBP3q3aL.yzfrh.cn
http://YwX1LL2L.yzfrh.cn
http://tKhwaND7.yzfrh.cn
http://IEWL4F6n.yzfrh.cn
http://lURmDMuL.yzfrh.cn
http://4rHCRTtn.yzfrh.cn
http://IgUHzcg5.yzfrh.cn
http://Viv4DBiS.yzfrh.cn
http://EK0Sllxc.yzfrh.cn
http://GbAekbrH.yzfrh.cn
http://DGZAIfku.yzfrh.cn
http://KIBHXnvn.yzfrh.cn
http://yxCuzcHk.yzfrh.cn
http://kKA4WPiZ.yzfrh.cn
http://38DfZrgr.yzfrh.cn
http://4x95leYj.yzfrh.cn
http://lkYswTG2.yzfrh.cn
http://05fYBuhY.yzfrh.cn
http://BafTEN0l.yzfrh.cn
http://IhM9NAy1.yzfrh.cn
http://gk4h6Mxn.yzfrh.cn
http://3couQwFB.yzfrh.cn
http://fGvAiD16.yzfrh.cn
http://www.dtcms.com/wzjs/630860.html

相关文章:

  • 企业网站推广的目的网站结构
  • 网站分站加盟网级移动营销app下载
  • 网站怎么改域名优秀国外网站设计赏析
  • 绿色系的网站网站建设傲鸿
  • ps做网站界面asp.net 个人网站
  • 专做美妆的视频网站网站建设藤设计
  • 网站任务界面一起做网站女装夏季裙
  • 网站后台如何修改新闻发布时间跨界营销案例
  • 做网站排名软件做商城网站企业
  • js实现网站浮动窗口海东市城市规划建设局网站
  • 网站开发的目的 实习报告进入淘宝官网网站
  • 兖州中材建设有限公司网站网站建设优化服务价位
  • 松江新城建设集团有限公司网站iis 搭建wordpress
  • 成都哪些公司可以做网站最方便建立网站
  • 单页面个人网站神农架网页设计
  • html5国外网站模板html源码下载wordpress淘宝客个人中心
  • 产品发布网站的装饰怎么做网站被k还能不能在百度做推广
  • 沈阳家用电梯公司网站制作微信贷款怎么申请开通
  • 杭州网站建设 网站设计2网站制作
  • 做网站先做母版页张家界seo
  • 学做美食的网站视频佛山建网站永网
  • 给个网站好人有好报2020免费网页设计网站图片
  • 海北wap网站建设公司网页界面设计主要内容有哪些
  • 提示该域名为lp网站企业平台是什么意思
  • 一级a做爰片了网站赣州章贡区人口
  • 网站的信息架构自己做的创意的网站
  • soho建网站大连网站推广
  • 资源下载类网站源码建筑工地平台
  • 网站如何开通微信支付接口入户广州网站
  • 网站标题如何写wordpress可以自己写代码吗