帮同学的忙,随意写了个课程设计(关于循环双向列表)
时间: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 }
- 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 数组属性和方法
- 详解Android中Glide与CircleImageView加载圆形图片的问题
- android全局监控click事件的四种方式(小结)
- Linux下如何永久修改主机名的方法步骤
- android与asp.net服务端共享session的方法详解
- Android实现多个连续带数字圆圈效果
- Android录制mp3格式文件
- Linux内核设备驱动之虚拟文件系统笔记整理
- linux服务器上使用nginx访问本地静态资源的方法
- Android控件之菜单的创建方式
- 可支持快速搜索筛选的Android自定义选择控件
- Android编程实现的短信编辑器功能示例
- SELinux 入门详解
- Android EditText限制输入字符的方法总结
- Android使用API实现图像扭曲效果示例
- linux网络配置工具的使用