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

怎样做永久网站二维码如何进行网站的宣传和推广

怎样做永久网站二维码,如何进行网站的宣传和推广,一女被多男做的视频网站,怎样做网站设计要交税吗一、栈 1.定义:栈是限定仅在表尾进行插入和删除的线性表 2.特点:先进后出 3.栈顶:允许操作的一方;栈底:不允许操作的一方 4基础操作: (1)创建 LinkStack* CreateLinkStack() { …

一、栈

1.定义:栈是限定仅在表尾进行插入和删除的线性表

2.特点:先进后出

3.栈顶:允许操作的一方;栈底:不允许操作的一方

4基础操作:

(1)创建

LinkStack* CreateLinkStack()
{
    LinkStack* ls = ( LinkStack* )malloc(sizeof(LinkStack));
    if(NULL == ls)
    {
        fprintf(stderr,"CreateLinkStack malloc\n");
        return NULL;
    }

    ls->top =NULL;
    ls->clen = 0 ;
    return ls;
}

(2)入栈

int PushLinkStack(LinkStack*ls,DATATYPE* data)
{
    LinkStackNode* newnode = malloc(sizeof(LinkStackNode));
    if(NULL == newnode)
    {
        fprintf(stderr,"PushLinkStack malloc\n");
        return 1;
    }
    memcpy(&newnode->data,data,sizeof(DATATYPE));
    newnode->next = NULL;

    newnode->next = ls->top;
    ls->top = newnode;
    ls->clen++;

}

(3)出栈

int PopLinkStack(LinkStack*ls)
{
    if(IsEmptyLinkStack(ls))
    {
        return 1;
    }
    LinkStackNode* tmp = ls->top;
    ls->top = ls->top->next;
    free(tmp);
    ls->clen--;
    return 0;
}
int IsEmptyLinkStack(LinkStack*ls)
{
    return 0 == ls->clen;
}

(4)取栈顶元素

DATATYPE* GetTopLinkStack(LinkStack*ls)
{
    if(IsEmptyLinkStack(ls))
    {
        return NULL;
    }
    return &ls->top->data;
}

(5)销毁

int DestroyLinkStack(LinkStack*ls)
{
    int len = GetSizeLinkStack(ls);
    for(int i = 0 ;i < len ;++i)
    {
        PopLinkStack(ls);
    }

    free(ls);
    return 0;
}

6.判断“()”“[]”“{}”是否对齐

#include <stdio.h>
#include <string.h>
#include "linkstack.h"


int readfile(char *filename, char *filecontext)//文本读取函数
{
    FILE *fp = fopen(filename, "r");
    if (NULL == fp)
    {
        return 1;
    }
    fread(filecontext, 1024, 1, fp);//从文件读取1024字节到缓冲区,返回实际读取块数
    fclose(fp);
    return 0;
}
int main(int argc, char **argv)
{
    char buf[1024] = {0};//初始化1024字节缓冲区
    int ret = readfile("/home/linux/2.c", buf);//读取文件内容到buf
    if (1 == ret)//判断读取是否成功
    {
      return 1;
    }
    LinkStack *ls = CreateLinkStack();//创建链表来存储符号
    char *tmp = buf;//定义一个指针,指向缓冲区起始位置
    DATATYPE data = {0};//定义一个结构体存储符号和其行列数
    int row = 1;//初始化行号
    int col = 1;//初始化列号
    DATATYPE *top;//存储栈顶元素
    while (*tmp)  // 遍历缓冲区
    {
        memset(&data, 0, sizeof(DATATYPE));//初始化结构体数据
        switch (*tmp)//判断是否是“({ [”符号
        {
            case '(':
            case '[':
            case '{':
              data.c = *tmp;//存储符号
              data.col = col;//存储列号
              data.row = row;//存储行号

              PushLinkStack(ls, &data);//入栈
            break;

            case ')'://判断符号是否是“)”并且与栈顶元素比较,看是否匹配
            top = GetTopLinkStack(ls);//获取栈顶元素
            if ('(' == top->c && NULL != top)
              {
                PopLinkStack(ls);
              }
            else
              {
                if (NULL == top)
                  {
                    printf("sym:%c row:%d col%d\n", ')', row, col);
                  }
                else
                  {
                    printf( "top sym:%c row:%d col%d , or file sym:%c row:%d col%d\n",top->c, top->row, top->col, *tmp, row, col);
                  }
                return 1;
              }

            break;

          case ']'://判断符号是否是“]”并且与栈顶元素比较,看是否匹配
            top = GetTopLinkStack(ls);
            if ('[' == top->c && NULL != top)
              {
                PopLinkStack(ls);
              }
            else
              { 
                if (NULL == top)
                  {
                    printf("sym:%c row:%d col%d\n", ')', row, col);
                  }
                else
                  {
                    printf(
                        "top sym:%c row:%d col%d , or file sym:%c row:%d col%d\n",top->c, top->row, top->col, *tmp, row, col);
                  }
                return 1;
              }

            break;

          case '}'://判断符号是否是“}”并且与栈顶元素比较,看是否匹配
            top = GetTopLinkStack(ls);
            if ('{' == top->c && NULL != top)
              {
                PopLinkStack(ls);
              }
            else
              {
                if (NULL == top)
                  {
                    printf("sym:%c row:%d col%d\n", ')', row, col);
                  }
                else
                  {
                    printf(
                        "top sym:%c row:%d col%d , or file sym:%c row:%d col%d\n",top->c, top->row, top->col, *tmp, row, col);
                  }
                return 1;
              }

            break;
        }
      col++;//列数递增
      if ('\n' == *tmp)//行数递增
        {
          col = 1;
          row++;
        }
      tmp++;//移动到下一个字符
    }

  if ('\0' == *tmp && IsEmptyLinkStack(ls))//判断是否成功遍历缓冲区
    {
      printf("ok");
    }
  else
    {
      top = GetTopLinkStack(ls);
      printf("top sym:%c row:%d col%d\n", top->c, top->row, top->col);
    }

    DestroyLinkStack(ls);
  return 0;
}
    return 0; 
}

二、队列

1.定义:只允许在一端进行插入,而在另一端进行删除操作的线性表

2.特点:先进先出

3.对尾:只允许插入的一端;对头:允许删除的一端

4.基础操作(顺序链表):

(1)创建

SeqQueue* CreateSeqQue(int len)
{
    SeqQueue *sq = (SeqQueue *)malloc(sizeof(SeqQueue));
    if(NULL == sq)
    {
        fprintf(stderr,"CreateSeqQue malloc\n");
        return NULL;
    }
    sq -> array = (DATATYPE *)malloc(sizeof(DATATYPE) * len);
    if(NULL == sq -> array)
    {
        fprintf(stderr,"DATATYPE malloc");
        return NULL;
    }
    sq -> head = 0;
    sq -> tail = 0;
    sq -> tlen = len;
    return sq;
}

(2)插入

int IsFullSeqQue(SeqQueue*sq)

{

return (sq->tail +1 )%sq->tlen == sq->head;

}

int EnterSeqQue(SeqQueue*sq,DATATYPE*data)

{

if(IsFullSeqQue(sq))

{

fprintf(stderr,"EnterSeqQue,SeqQueue full\n");

return 1;

}

memcpy(&sq->array[sq->tail],data,sizeof(DATATYPE));

sq->tail = (sq->tail+1)%sq->tlen;

return 0;

}

(3)删除

int IsEmptySeqQue(SeqQueue*sq)

{

return sq->head == sq->tail;

}

int QuitSeqQue(SeqQueue*sq)

{

if(IsEmptySeqQue(sq))

{

fprintf(stderr,"QuitSeqQue SeqQueue empty\n");

return 1;

}

sq->head = (sq->head+1)%sq->tlen;

return 0;

}

http://www.dtcms.com/wzjs/138260.html

相关文章:

  • 网站建设使用情况搜索引擎推广法
  • 建网站哪家好案例网站视频
  • 单仁做的网站推广之家官网
  • 网站开发验收申请报告seod的中文意思
  • 南充做网站的seo优化推广流程
  • 北京市网站维护公司web网页制作成品免费
  • 电话推销网站建设可以推广的软件有哪些
  • 在iis上部署的网站本机无法浏览解决方法关键词优化好
  • .net网站开发是什么对象开发上海网站建设关键词排名
  • 服务外包有哪些信息流优化师证书
  • 贸易网站有哪些网站的推广方法有哪些
  • 自己做网站怎么挣钱上海专业优化排名工具
  • 抓取的网站如何做seo廊坊seo管理
  • 网页设计素材加代码台州seo快速排名
  • 云南省住房和建设执业资格注册中心网站青岛网站建设与设计制作
  • 企业网站优化徽号liu7yin出本词效果抖快均可做a7百度关键字搜索量查询
  • 怎么样做钓鱼网站公司网站域名续费一年多少钱
  • 做pc端网站包括哪些泉州seo排名扣费
  • 果洛电子商务网站建设seo点击排名软件哪家好
  • 南昌网站搭建公司 赣ICP精准营销的案例
  • 泉州公司网站建设seo是哪里
  • 甘肃肃第八建设集团网站seo营销课程培训
  • 旅游网站建设流程步骤百度免费优化
  • 分站城市网站如何做seo网站推广应该怎么做?
  • 武汉做网站公司有哪些网站如何让百度收录自己的网站
  • 做网站优化推广推广普通话内容
  • 网站建设需要什么设备热搜榜上2023年热门话题
  • 专业开发网站多少钱网络运营推广合作
  • 校园社交网站怎么做淘宝流量平台
  • 程序员给别人做的网站违法了宁波网站关键词优化排名