zoukankan      html  css  js  c++  java
  • 帮同学的忙,随意写了个课程设计(关于循环双向列表)

      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 }
  • 相关阅读:
    ReactJs入门
    Studio-Class Diagram
    Visual Studio-Sequence Diagram
    架构、职责、数据一致性
    Microsoft Build 2015
    Net下无敌的ORM
    SpringMVC1
    插件式Web框架
    ASP.NET的CMS
    Android Drawable绘图学习笔记(转)
  • 原文地址:https://www.cnblogs.com/gongxijun/p/3572368.html
Copyright © 2011-2022 走看看