데이터 구조 조세 프 링 실습 보고서 소스 코드

2298 단어 데이터 구조
#include
int n,m;
struct LinkList
{
    int bianhao;
    int mima;
    struct LinkList* next;
}LinkHuan[50];
void duru()
{
    printf("           :
"); for(int i=1;i<=n;i++){ scanf("%d",&LinkHuan[i].mima); LinkHuan[i].bianhao=i; if(i==n) LinkHuan[i].next=&LinkHuan[1]; else LinkHuan[i].next=&LinkHuan[i+1]; } } void shuchu() { printf(" :
"); LinkList* p=&LinkHuan[1]; while(p->next!=p){ for(int i=1;inext; printf("%d
",p->next->bianhao); m=p->next->mima; p->next=p->next->next; if(m!=1) p=p->next; } printf("%d
",p->bianhao); } int main() { printf(" n m :
"); scanf("%d%d",&n,&m); duru(); shuchu(); return 0; } /* 7 20 3 1 7 2 4 8 4 */

이것 은 먼저 m - 2 회 순환 하고 m 의 값 순환 을 보 는 m - 1 회 입 니 다.
m 가 1 인 경우 에 반드시 주의해 야 한다.
#include
#include
using namespace std;

struct LinkList
{
   int data; //         
   int password;//         
   LinkList *next;//          
};
int m,n,i,j;
LinkList *p,*q,*first;
void Printf()
{
    cout<>m;
    cout<>n;
}
int ShuruMima()
{
    for(i=1;i<=n;i++)
   {
        if(i==1)
        {
            first=p=(LinkList*)malloc(sizeof(LinkList));
            if(p==0)
                return 0;
        }
        else
        {
            q=(LinkList*)malloc(sizeof(LinkList));
            if(q==0)
                return 0;
            p->next=q;
            p=q;
        }
        cout<>(p->password);
        p->data=i;
   }
}
void ShuChu()
{
    p->next=first; //             
   p=first;
   cout<next);
        m=p->password;
        cout<data<data=p->next->data;
        p->password=p->next->password;
        q=p->next;
        p->next=p->next->next;
        free(q);
   }
   cout<

이것 은 m - 1 회 순환 한 후에 바로 다음 노드 를 옮 기 는 것 이 상대 적 으로 간단 하 다.
신문 을 써 서 한참 을 했 더 니 시간 도 많이 낭비 하고 힘 들 었 다.

좋은 웹페이지 즐겨찾기