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

免费注册网站软件做网站图标的软件

免费注册网站软件,做网站图标的软件,做网站需要哪些程序,建设手机网站报价目录 c实现链表 链表的结构定义#xff1a; 链表的结构操作#xff1a; 1、初始化链表 2、销毁链表 3、插入结点 4、输出链表数据 5、查找链表数据 扩展 代码实现 c实现链表 链表的结构定义#xff1a; /*** 链表结构定义 ***/ typedef struct Node {int data; //… 目录 c实现链表 链表的结构定义 链表的结构操作 1、初始化链表 2、销毁链表 3、插入结点 4、输出链表数据 5、查找链表数据 扩展 代码实现 c实现链表 链表的结构定义 /*** 链表结构定义 ***/ typedef struct Node {int data; //数据领struct Node * next; //指针域 }Node; 链表的结构操作 1、初始化链表 //1、初始化 Node * getNewNode(int val){Node * p (Node *)malloc(sizeof(Node)); //为新链表开辟空间p-data val; //数据域赋值p-next NULL; //指针域指向空return p; } 2、销毁链表 //2、销毁链表 void clear(Node * head){if(head NULL) return ;//不能直接释放结点如果直接释放会导致内存泄漏for(Node *p head, *q; p; p q){q p-next;free(p);}return ; } 3、插入结点 // //3.1、无头链表插入节点 // Node *insert(Node *head, int pos, int val){ // if( pos 0 ){ // //如果插入位置是0也就是头指针的位置 // //先将val值包成一个新节点然后让新节点指向原来链表的首地址再返回新链表的首地址 // Node *p getNewNode(val); // p-next head; // return p; // }// int n -1; // for (Node *p head; p; p p-next) n 1; // if(pos n) pos n;// //定义指针p找到待插入位置的前一个元素 // Node *p head; // for (int i 0; i pos; i) p p-next; // Node * node getNewNode(val); // 将val值包成一个新节点插入节点 // node-next p-next; // p-next node; // return head; //返回新链表 // } //3.2 有头链表插入节点 Node *insert2(Node *head, int pos, int val){// 虚拟头节点 指针p指向虚拟头节点 插入结点开辟新的空间Node new_head, *p new_head, *node getNewNode(val);new_head.next head;//虚拟头节点指向链表for (int i 0; i pos; i) p p-next;//找到插入前一个位置node-next p-next;p-next node;return new_head.next; //返回头结点的所指向链表的地址 } 4、输出链表数据 //4、输出链表数据 void output_linklist(Node *head){int n 0;// 先统计有多少个结点for (Node *p head; p; p p-next) n 1; for (int i 0; i n; i){printf(%3d,i);printf( );}printf(\n);for(Node *p head; p; p p-next){printf(%3d,p-data);printf(-);}printf(\n\n\n);return ; } 5、查找链表数据 //5、查找 int find(Node *head, int val){Node *p head;int n 0;while (p){if(p-data val){output_linklist(head);int len n * (3 2) 2;for (int i 0; i len; i) printf( );printf(^\n);for (int i 0; i len; i) printf( );printf(|\n);return 1;}n 1;p p-next;}return 0; } 扩展 while(~scanf(%d, n))  等价于 while(scanf(%d,n)!EOF)         EOF为End Of File的缩写通常在文本的最后存在此字符表示资料结束。EOF通常的值为-1。          while(~scanf(%d, n)) 意思就是当有值输入的时候进入while当没有值输入时就结束while。输入了值如果scanf成功读取了就返回1取反的结果不为0进入while如果scanf没有成功读取返回0取反的结果不为0进入while如果没有输入到达文件末尾则返回-1取反的结果为0结束while。 代码实现 #include stdio.h #include stdlib.h #include time.h/*** 链表结构定义 ***/ typedef struct Node {int data; //数据领struct Node * next; //指针域 }Node;/*** 链表结构操作 ***/ //1、初始化 Node * getNewNode(int val){Node * p (Node *)malloc(sizeof(Node)); //为新链表开辟空间p-data val; //数据域赋值p-next NULL; //指针域指向空return p; }// //3.1、无头链表插入节点 // Node *insert(Node *head, int pos, int val){ // if( pos 0 ){ // //如果插入位置是0也就是头指针的位置 // //先将val值包成一个新节点然后让新节点指向原来链表的首地址再返回新链表的首地址 // Node *p getNewNode(val); // p-next head; // return p; // }// int n -1; // for (Node *p head; p; p p-next) n 1; // if(pos n) pos n;// //定义指针p找到待插入位置的前一个元素 // Node *p head; // for (int i 0; i pos; i) p p-next; // Node * node getNewNode(val); // 将val值包成一个新节点插入节点 // node-next p-next; // p-next node; // return head; //返回新链表 // } //3.2 有头链表插入节点 Node *insert2(Node *head, int pos, int val){// 虚拟头节点 指针p指向虚拟头节点 插入结点开辟新的空间Node new_head, *p new_head, *node getNewNode(val);new_head.next head;//虚拟头节点指向链表for (int i 0; i pos; i) p p-next;//找到插入前一个位置node-next p-next;p-next node;return new_head.next; //返回头结点的所指向链表的地址 }//2、销毁链表 void clear(Node * head){if(head NULL) return ;//不能直接释放结点如果直接释放会导致内存泄漏for(Node *p head, *q; p; p q){q p-next;free(p);}return ; }//4、输出链表数据 void output_linklist(Node *head){int n 0;// 先统计有多少个结点for (Node *p head; p; p p-next) n 1; for (int i 0; i n; i){printf(%3d,i);printf( );}printf(\n);for(Node *p head; p; p p-next){printf(%3d,p-data);printf(-);}printf(\n\n\n);return ; }//5、查找 int find(Node *head, int val){Node *p head;int n 0;while (p){if(p-data val){output_linklist(head);int len n * (3 2) 2;for (int i 0; i len; i) printf( );printf(^\n);for (int i 0; i len; i) printf( );printf(|\n);return 1;}n 1;p p-next;}return 0; }int main(void){srand(time(0));#define MAX_OP 7Node *head NULL;for (int i 0; i MAX_OP; i){int pos rand() % (i1), val rand() % 100;printf(insert %d at %d to linklist.\n,val,pos);head insert2(head,pos,val);output_linklist(head);}int val;while (~scanf(%d, val)) {if (!find(head, val)) {printf(not found\n);}}clear(head);return 0; }
http://www.hkea.cn/news/14490220/

相关文章:

  • 东莞个人做网站创意设计公司架构
  • 做外贸网站多少钱桐乡建设规划局网站
  • 做汉字的教育网站电商运营公司排名
  • 上海网站公司设计网站正在备案中
  • 自媒体网站源码上海企业网站营销电话
  • 深圳做响应式网站惠安县建设局网站
  • 冒用网站备案号建设网站咨询微平台
  • 成都网站推广排名俄语网站模板
  • 北大学风建设网站条件查询 php网站源码
  • 网站页面做成自适应优缺点wordpress 图书主题
  • 上海网站设计哪家好做网站用的背景图
  • 哪些电影网站怎么建设的手表网站 二手
  • 中国煤炭建设协会网站qc台州网络推广
  • 如何提高商城网站权重短视频运营公司网站建设
  • 彭阳门户网站建设wordpress公众号插件
  • 保卫处网站建设广告制作费用清单明细
  • 好品质高端网站设计福州网站建设新闻
  • 巴中汽车网站建设网站域名注册证明
  • 汾阳网站建设如何制作自己网站
  • wordpress网站慢wordpress最好用的seo
  • 有域名之后怎么自己做网站局域网聊天工具有哪些
  • 网站建设360 全景制作方案网络营销论坛有哪些
  • 肇庆城乡建设网站网站建议怎么写
  • 大学生心理咨询网站建设论文网站开发的项目实战
  • 建设网站费用如何做账wordpress 不显示缩略图
  • 朝阳网络 网站建设网站建设 重庆
  • 高端的网站制作aaa免费服务器
  • php网站语言切换功能如何做wordpress配置文件在哪
  • 什么是网站主办者wordpress淘宝采集
  • 做博客网站怎么赚钱网站关键字分析