数据结构作业代码保存-2.1 单向循环链表的建立,插入和删除,和指针移动
来源:互联网 发布:本田数据库 编辑:程序博客网 时间:2024/04/29 14:25
在此感谢我亲爱的大神同学们!一个Z妹子讲情了思路,一个M妹子提供了更高级的双向循环链表的代码借鉴(虽然有些还是没怎么看懂。。。
我的作业就完成啦!保存代码当个纪念!
1,往操作位置顺时针的下一位插入一个元素,并将操作位置移到新元素上。
2,删掉操作位置顺时针方向的下一位。如果机器中没有数据,不做操作。
3,使得操作位置向顺时针移动一位。
#include<iostream>
#include<cstring>
using namespace std;
struct link{
char ch; //save a character
link*next; //--->
};
link *head,*tail,*current,*tp; /尾指针我以为我会用,但并没有。。。,C用来充当移动的指针,也就是指向操作的指针。
int node=0; //确定结点个数,这样输出时比较方便确认输出范围
void meau(char ch);
void init();
struct link*creat(char ch); //return head
void add(char ch);
void delate();
void move();
void display();
void display(){
while(node!=0){
cout<<current->ch;
current=current->next;
node--;
}
}
void move(){
current=current->next;
}
void delate(){
if(head==NULL)
return;
else{
current->next=current->next->next;
}
node--;
}
void add(char ch){
if(head==NULL)
head=current=tail=creat(ch);
else if(current->next==head){
tp=creat(ch);
tp->next=head;
current->next=tp;
current=current->next;
}
else{
tp=creat(ch);
tp->next=current->next;
current->next=tp;
current=current->next;
}
node++;
}
struct link*creat(char ch){
link*p=new link();
p->ch=ch;
p->next=p;
return p;
}
void init(){
head=tail=current=tp=0;
}
void meau(){
int num;
char ch1;
cin>>num;
switch(num){
case 1:cin>>ch1;add(ch1);break;
case 2:delate();break;
case 3:move();break;
default:break;
}
}
int main(){
int op;
char str[101];
cin>>op;
cin>>str;
for(int i=0;i<strlen(str);i++)
add(str[i]);
while(op>0){
meau();
op--;
}
display();
return 0;
}
- 数据结构作业代码保存-2.1 单向循环链表的建立,插入和删除,和指针移动
- 单向动态链表的建立、插入、删除、排序和保存
- 数据结构Java实现 --单向链表的插入和删除
- Java数据结构03----单向链表的插入和删除
- 数据结构作业保存2-2双向循坏列表的建立,删除,插入,移动
- 利用二级指针插入和删除单向链表
- C语言中单向非循环链表的生成,遍历,排序,插入和删除
- 数据结构Java实现【3】----单向链表的插入和删除
- 数据结构Java实现03----单向链表的插入和删除
- 数据结构Java实现03----单向链表的插入和删除
- 数据结构Java实现03----单向链表的插入和删除
- 单向链表的插入删除代码
- 链表的建立、插入和删除
- 链表的建立、插入和删除
- 数据结构--双向循环链表--插入和删除
- 单向循环链表的创建/插入/删除/输出算法
- 【程序员面试宝典】数据结构基础二单链表循环链表的操作 建立|插入删除|打印|合并
- 【高质量代码实践】【链表】链表的建立,查找,删除,插入和输出
- @+id与@id
- 对线性回归,logistic回归和一般回归的认识
- PDP上下文和PDP地址
- linux vi常用命令
- linux系统性能监控--CPU利用率
- 数据结构作业代码保存-2.1 单向循环链表的建立,插入和删除,和指针移动
- MFC 操作XML文件
- jmeter之分布式(远程)压测
- Android 窗口管理:如何添加窗口到WMS
- Json本地解析
- jenkins上Docker镜像不能成功创建
- 记录一下JFinal 在controller 添加事务处理
- C#、C++、JAVA中虚函数和抽象函数的概念对比
- 集下拉刷新与侧滑删除于一身的库 PullToRefresh and SwipeMenu