abc.rar

  • PUDN用户
    了解作者
  • Visual C++
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 89
    下载次数
  • 2010-06-23 05:25
    上传日期
单链表的插入,删除用C++ 编写的,功能齐全,但是我也试试了一次
abc.rar
  • abc.txt
    4.8KB
内容介绍
1.整数 # include "iostream.h" # include "stdlib.h" # define NULL 0 typedef struct list{ int data; struct list* next; }list,*LIST; void create(LIST& head){//创建链表 LIST p1,p2; head=p1=p2=(LIST)malloc(sizeof(list)); cout<<"please input a int type num,quit by pressing 0\ndata: "; cin>>p1->data; for(;p1->data!=0;){ p2=p1; p1=(LIST)malloc(sizeof(list)); cout<<"data: "; cin>>p1->data; p2->next=p1; } p2->next=NULL; if(head->data==0) head=NULL; } void insert(LIST& head){//把元素插入链表 LIST p; p=(LIST)malloc(sizeof(list)); cout<<"please input a int type data you want to insert\ndata: "; cin>>p->data; p->next=head; head=p; } void Delete(LIST& head){//删除链表元素 LIST p,q; p=head; if(head==NULL) cout<<"list NULL,erro\n"; else{ cout<<"please input a int type num you want to delete\ndata: "; int a; cin>>a; for(;p->data!=a&&p->next!=NULL;p=p->next) q=p; if(p->next==NULL&&p->data!=a) cout<<a<<" is not in the list\n"; else if(p- rel='nofollow' onclick='return false;'>data==a) if(p!=head) q->next=p->next; else head=head->next; } } void SORT(LIST& head){ //链表排序 LIST p,q,s; if(head==NULL) cout<<"list is NULL,you have no need to sort it\n"; else{ for(p=head;p!=NULL;p=p->next){ s=p; for(q=p;q!=NULL;q=q->next) if(s->data>q->data) s=q; int a=p->data; p->data=s->data; s->data=a; } } } void print(LIST head){//输出链表 LIST p; p=head; if(head==NULL) cout<<"list NULL,quit\n"; else{ cout<<"\nhere is the list\n"; for(;p!=NULL;p=p->next) cout<<p->data<<" "; cout<<endl; } } int main(){ LIST head; create(head); print(head); insert(head); SORT(head); print(head); Delete(head); print(head); return 0; } 2.字符 #include <iostream> using namespace std; typedef struct node { char data; struct node *next; }link; link * get(link *l, int i) { link *p;int j=0; p=l; while((j<i) && (p->next!=NULL)) {p=p->next;j++;} if(j==i) return p; else return NULL; } link * ins (link *l, char ch,int i) { link *p,*s; p=get(l,i-1); if(p==NULL) cout<<"输入有误"<<endl; else { s=(link *)malloc(sizeof(link)); s->data=ch; s->next=p->next; p->next=s; } return l; } link * find(link *l, char ch) { link *p; int i=0; int j=0; p=l; while(p!=NULL) { i++; if(p->data!=ch) p=p->next; else {cout<<"您查找的数据在第"<<i-1<<"个位置."<<endl; j=1;p=p->next; } } if(j!=1) cout<<"您查找的数据不在线性表中."<<endl; return l; } link * del(link *l, int i) { link *p,*s; p=get(l,i-1); if(p==NULL) cout<<"输入有误"<<endl; else { s=p->next; p->next=s->next; free(s); } return l; } link * add(link *l ) { link *p,*s; cout<<"请输入一串单字符数据,以*结束!"<<endl; char ch; link *HEAD; link *R,*P,*L; HEAD=(link *)malloc(sizeof(link)); HEAD->next=NULL; R=HEAD; getchar(); ch=getchar(); while(ch!='*') { P=(link *)malloc(sizeof(link)); P->data=ch;P->next=NULL; R->next=P;R=R->next; getchar(); ch=getchar(); } L=HEAD; cout<<"当前输入的线性表为:"<<endl; P=L;P=P->next; if(L!=NULL) do {cout<<P->data<<" "; P=P->next; }while(P!=NULL); cout<<endl; p=l; while(p->next!=NULL) p=p->next; s=L; p->next=s->next; p=l; return l; } link * print(link *l) { int i,k; char ch; link *p,*q; cout<<"当前线性表为:"<<endl; p=l;p=p->next; if(l!=NULL) do {cout<<p->data<<" "; p=p->next; }while(p!=NULL); cout<<endl; cout<<"请选择您要的操作:"; cout<<" 1、插入"; cout<<" 2、查找"; cout<<" 3、删除"; cout<<" 4、合并"; cout<<" 0、退出"; cout<<endl; cin>>k; if(k==1) { cout<<"请输入您要插入的数据值:"; cin>>ch; cout<<"请输入您要插入的位置:"; cin>>i; p=ins(l,ch,i); q=print(l); } else if(k==2) { cout<<"请输入您要查找的数据值:"; cin>>ch; p=find(l,ch); q=print(l); } else if(k==3) { cout<<"请输入您要删除的数据的位置:"; cin>>i; p=del(l,i); q=print(l); } else if(k==4) { p=add(l); q=print(l); } else if(k==0) ; else {cout<<"输入错误!"<<endl; q=print(l);} return l; } int main() { cout<<"请输入一串单字符数据,以*结束!"<<endl; char ch; //link *head; link *r,*p,*q,*l; l=(link *)malloc(sizeof(link)); l->next=NULL; r=l; ch=getchar(); // getchar(); while(ch!='*') { p=(link *)malloc(sizeof(link)); p->data=ch;p->next=NULL; r->next=p;r=r->next; ch=getchar(); // getchar(); } //l=head; q=print(l); return 0;
评论
    相关推荐
    • ABC.rar
      人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣...为了解决多变量函数优化问题,Karaboga提出了人工蜂群算法ABC模型。
    • abc.rar
      Video processing with different files and techniques.
    • abc.zip
      非常好的资料,值得收藏,非常好的资料,值得收藏,非常好的资料,值得收藏,
    • OSSPwBeam_ABC
      OSSPwBeam_ABC 人工蜂群(ABC)算法是最近引入的基于群体的算法之一。 ABC算法是一种基于蜜蜂群智能觅食行为的优化算法。 在本文中,我们提出了一种将ABC算法与波束搜索(BS)进行混合的方法,这是众所周知的启发式...
    • 智能ABC
      英文操作系统智能ABC
    • abc排序.zip
      ABC三个数字按大小排序,语言类型:C语言,难度:入门中的入门级
    • Abc.rar
      类似金山词霸生词本的DAO数据库代码,实现的功能:把数据库中的记录显示到列视中,可以进行记录添加、删除、修改、查询等操作。
    • ABC.rar
      champions galatasaray
    • abc.rar
      this is code of me, please view for more detail
    • ABC.zip
      坐标变换的simulink以及子函数程序