帮同学的忙,随意写了个课程设计(关于循环双向列表)
时间:2022-05-05
本文章向大家介绍帮同学的忙,随意写了个课程设计(关于循环双向列表),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 /* 双向循环链表c++版 */
2 /* Gxjun coder */
3 #include<iostream>
4 #define type int //<由于内容不定所以就这样定义吧>
5 using namespace std;
6
7 typedef struct Node
8 {
9 type inf; //<表示的事节点的内容>
10 struct Node* pre ; //<上一节点>
11 struct Node* next ; //<下一节点>
12 }node ;
13
14 /*创建,插入,删除,打印*/
15
16 void creat( node*& head )
17 {
18 node *ps; /* <作为辅助指针>*/
19 node* temp= new node ;
20 cout<<" <输入数字,输入0结束>"<<endl ;
21 while(cin>>temp->inf,temp->inf!=0)
22 {
23 if(head==NULL)
24 {
25 ps=head=temp;
26 }
27 else
28 {
29 ps->next=temp;
30 temp->pre=ps;
31 ps=temp;
32 }
33 temp->next=head;
34 head->pre=temp;
35 temp = new node;
36 }
37 }
38
39
40
41 void insert( type inf, int pos , node* &head )
42 {
43 node* temp=head,*tem;
44 /*<表示head所在位置为原坐标轴>*/
45 if(pos>0) /* <表示向下> */
46 {
47 while(pos-->1)
48 temp=temp->next;
49 }
50 else
51 {
52 /* <表示向上> */
53 while(pos++<0)
54 temp=temp->pre;
55 }
56 tem= new node;
57 tem->inf=inf;
58 tem->next=temp->next;
59 temp->next->pre=tem;
60 temp->next=tem;
61 tem->pre=temp;
62 }
63
64 void delet( type inf ,node*& head )
65 {
66 node* temp=head;
67 int n=0;
68 while(n++==0||temp!=head)
69 {
70 if( inf==temp->inf )
71 {
72 temp->pre->next=temp->next;
73 temp->next->pre=temp->pre;
74 }
75 temp=temp->next;
76 }
77 }
78
79 void print(node*& head)
80 {
81 node *temp=head;
82 while( temp->next!=head )
83 {
84 cout<<temp->inf<<endl;
85 temp=temp->next;
86 }
87 cout<<temp->inf<<endl;
88 }
89
90 int main()
91 {
92 node *head=NULL;
93 type data;
94 int pos;
95 creat(head);
96 cout<<" <输入你要插入的位置(+n 向下,-n向上),以0结束>"<<endl;
97 while(cin>>pos,pos!=0)
98 {
99 cout<<"<输入数字inf>"<<endl;
100 cin>>data;
101 insert(data,pos,head);
102 }
103 cout<<"<输入你要删除的数>"<<endl;
104 cin>>data;
105 delet(data,head);
106 print(head);
107 return 0;
108 }
- 生信菜鸟团博客2周年精选文章集(4)NCBI数据库的几个探索
- PHP 的前世今生
- 【直播】我的基因组49:Y染色体的SNV不能用常规流程来找?
- 【直播】我的基因组46:SNV突变(96种)频谱的制作
- 深入剖析-Oracle索引分支块的结构
- 【直播】我的基因组48:我可能测了一个假的全基因组
- 【直播】我的基因组47:测序深度和GC含量的关系
- 【直播】我的基因组47:测序深度和GC含量的关系
- SNV突变(96种)频谱的制作
- Golang语言社区--go语言执行cmd命令关机、重启等
- 【直播】我的基因组 45:SNV突变(6种)频谱的制作
- 【直播】我的基因组 44:比对文件画profile和heatmap图
- 做过1000遍RNA-seq的老司机告诉你如何翻车
- 【直播】我的基因组 43:简单粗糙的WGS数据分析流程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浅析Flutter AbsorbPointer 与 IgnorePointer的区别
- php用wangeditor3实现图片上传功能
- Flutter集成到已有iOS工程的方法步骤
- php的命名空间与自动加载实现方法
- Android Studio实现简易计算器(表格布局TableLayout)
- php常用经典函数集锦【数组、字符串、栈、队列、排序等】
- php实现的表单验证类完整示例
- Android studio实现简单的计算器
- Thinkphp5框架实现获取数据库数据到视图的方法
- thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
- Android Studio实现简单计算器功能
- 深入学习微信网址链接解封的防封原理visit_type
- kotlin实现五子棋单机游戏
- thinkphp3.2框架中where条件查询用法总结
- Android10自动连接WiFi问题的解决