线性表[ACM] (有bug)有待修改


 1 #include "iostream"
2 #include "string"
3 using namespace std;
4
5 typedef struct node{
6 string data;
7 struct node *next;
8 node(string str){
9 data=str;
10 next=NULL;
11 }
12
13 }Node;
14
15
16 Node *head=new node("hfirst");
17 Node *back=new node("bfirst");
18 Node *current=NULL;
19 Node *pre=head;
20
21
22 void add(string str){
23 Node *temp;
24 if(back->data=="bfirst")
25 temp=new Node(str);
26 else{
27 temp=back->next;
28 back->next=temp->next;
29 temp->data=str;
30 temp->next=NULL;
31 }
32 temp->next=head->next;
33 head->next=temp;
34 current=temp;
35 }
36
37 void move(int p){
38 int i=0;
39 for(;i<p;i++){
40 pre=current;
41 if(current==NULL){
42 cout<<"worng!!!"<<endl;
43 current=head->next;
44 pre=head;
45 break;
46 }
47 else
48 current=current->next;
49 }
50
51 }
52
53 void del(int i){
54 Node *temp=current;
55 Node *tp;
56 while(i!=0&&current!=NULL){
57 tp=current;
58 current=current->next;
59 }
60 if(current==NULL){
61 back->next=pre->next;
62 pre->next=NULL;
63 pre=head;
64 current=head->next;
65 }
66 else{
67 pre->next=current;
68 temp->next=back->next;
69 back->next=temp;
70 }
71
72 }
73 void _print(){
74 cout<<current->data;
75 }
76
77
78 void main(){
79 string choice,str;
80 int i;
81 while(1){
82 cin>>choice;
83 if (choice==("ADD")){cin>>str;add(str);}
84 if (choice==("MOVE")){cin>>i;move(i);}
85 if (choice==("DEL")){cin>>i;del(i);}
86 if (choice==("PRINT"))_print();
87 }
88 getchar();
89 }

线性表[ACM] (有bug)有待修改,布布扣,bubuko.com

时间: 2025-01-16 10:40:02

线性表[ACM] (有bug)有待修改的相关文章

线性表——顺序存储结构

一)声明 新手上路.如果有不对的,不合理的地方,编码风格,算法思路有待改进的地方,还请各位大神多多指点. 二)简介 本文中采用动态开辟内存的方法建立线性表,实现顺序表的基本操作. 此代码思路比较简单,毕竟只是简单的原理,没有具体的应用,仅仅作为入门学习的积累. 三)具体实现分析如下: 3.1)头文件定义如下: 1 #ifndef LinearList_SqList_h 2 #define LinearList_SqList_h 3 4 #include <stdio.h> 5 #include

C 数据结构1——线性表分析(顺序存储、链式存储)

之前是由于学校工作室招新,跟着大伙工作室招新训练营学习数据结构,那个时候,纯碎是小白(至少比现在白很多)那个时候,学习数据结构,真的是一脸茫然,虽然写出来了,但真的不知道在干嘛.调试过程中,各种bug也不懂怎么修改,那个时候,电脑一直被我弄蓝屏,这个寒假,重新学习一遍数据结构,获益良多,整理一下,发布出来,求拍砖,共同进步. 线性表(List),0个或者多个数据元素的有限序列 线性表的顺序存储,即线性表通过数组的方式实现,指用一段地址连续的存储单元一次存储线性表的数据元素.如图: A1 A2 -

数据结构之线性表(严蔚敏《数据结构》要求)

1.每个代码都是博主一个字一个敲出来的(有参考,但是我很认真的去分析了每个函数逻辑结构,并做了一定的修改)2.函数都已经通过测试,没有bug,符合要求3.这里只贴出代码,代码里有些本人的理解和注释,但是没有那么详细 代码分为 main.c 1 #include <stdio.h> 2 #include "fuction.h" 3 4 int main(void){ 5 Sqlist La; 6 Sqlist Lb; 7 Sqlist Lc; 8 int i=0; 9 int

线性表—顺序表

引言(重点): 1.线性表的概述 2.线性表的抽象数据类型描述 3.线性表的实现方式 4.线性表的具体实现 5.每种具体实现的分析 1.什么是线性表?线性表(Linear List):由同类型元素构成有序序列的线性结构. 特征:1.表中元素个数称为线性表的长度2.线性表没有元素时,称为空表3.表起始位置称表头,表结束位置称为表尾4.在一个元素的前面的元素叫前驱元素,在一个元素后面的元素叫后继元素. 2.线性表的抽象数据类型描述 List MakeEmpty():初始化一个空线性表L;Elemen

第二章:3.线性表---静态链表的表示和实现

前言: 由于一些高级程序设计语言中,并没有 "指针" 类型,因此上一节中用指针来描述的单链表不能被实现,这时候我们就会使用另一种形式链表:静态链表. 目录: 1.线性表的链式表示和实现 1.1线性链表 单链表(指针型线性链表) 静态链表 1.2循环链表 1.3双向链表 正文: 线性表的静态单链表存储结构: #define MAXSIZE 100; //链表的最大长度 typedef   struct{ ElemType  data; int  cur; }component, SLin

数据结构一:线性表

线性表是最常用也是最简单的数据结构,几种常用的线性表的类模板C++描述描述如下: 1.顺序表 顺序表是将所有元素按逻辑顺序存储在一组地址连续的存储空间中的简单数据结构: 1 const int MAXSIZE = 1000; 2 template<class T> 3 class SeqList 4 { 5 public: 6 SeqList(){ lenght = 0; } // 无参构造函数 7 SeqList(const T a[], int n); // 带参构造函数,并用数组初始化

数据结构笔记之线性表

线性表即链表,基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他么个数据元素都有一个前驱和后继.是最基本且最常用的一种线性结构. 2.1线性表的定义和特点 由n(n>=0)个数据特性相同的元素否城的有限序列成为线性表,n为线性表长度,当n=0称空表. 举例:1.26个英文字母的字母表是一个线性表,数据元素是单个字母. 2.学生信息表中,每一个学生为一个数据元素,包括学号.姓名.性别等等数据项. 2.2案例:图书信息管理系统. 2.3线性表的类型定义 线性表是一个相当灵活的数据结构

集合操作--线性表

1.ArrayList和LinkedList List接口是Collection的子接口,用于定义线性表数据结构. 可以将List理解为存放对象的数组,只不过其元素个数可以动态的增加或减少. List接口的两个常见实现类为ArrayList和LinkedList,分别用动态数组和链表的方式实现了List接口 可以认为ArrayList和LinkedList的方法在逻辑上完全一样,只是在性能上有一定的差别. ArrayList更适合于随机访问而LinkedList更适合于插入和删除. 在性能要求不

数据结构线性表链表的C语言实现

                                                                                      数据结构线性表链表的C语言实现      说明:线性表是一种最简单的线性结构,也是最基本的一种线性结构,所以它不仅是学习中的重点,也是应用开发非常常用的一种数据结构.它可以分为顺序表和链表.它的主要操作是数据元素的插入,删除,以及排序等.接下来,本篇文章将对线性表链表的基本操作和运用进行详细的说明(包含在源代码的注释中),并给