回 帖 发 新 帖 刷新版面

主题:求帮数据结构课程设计

设单链表中存放n个字符,试设计一个 
算法,使用栈判断该字符串是否中心对称, Pn
如 xyzzx即为中心对称字符串。
  
设有n个人围座成一圈,先从某一个人Pi 开始按逆时针的顺序报数,当数到第m个人时,该人出圈。然后从下一个人开始重新报数,…依次数下去,直到所有人都出圈为止。试选择两种合理的数据结构来表述上述问题,并在你设计的数据结构基础上编制程序,按这n个人的出圈次序输出这n个人的序列Pi1,Pi2,…Pin。
要求: 
令n=10;m=3, . . .
Pi=5, Pi是代表某人的号码, 
顺序为7,5,6,9, Pi P2
8,2,1,3,4,10。 P1

对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,
然后利用队列的一种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索遍历,并输出遍历的结果。


先在一个数组中随机产生1000个互不相同的1-3000的整数。然后使用冒泡排序和快速排序的方法分别对其排序。
要求:
1) 对每种排序方法分别记录其排序过程中的元素比较次数。
2) 比较两种排序方法的优劣。


首先随机地产生1000个1-3000以内的互不相同的整数,对它们做以下存储。
要求:
1) 存储于一个数组中(不排序)
2) 存储于一个数组中(排序)
3) 存储于一个二叉排序树中。
在这三种存储结构形式中分别做查找运算,要求输入一个查找元素,输出各自的查找比较次数。

高手们请帮我一下。

回复列表 (共1个回复)

沙发

#include<iostream.h>
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef int datatype;
typedef struct node
{
    datatype data;
    struct node *next;
}linklist;
int main()
{
    int n,m,s,i,node;//n为总个数,s为起始位数,m为步长
    linklist *p,*q,*r;
    cout<<"Input total number, initial number and distance: ";
    cin>>n>>s>>m;
    p=(linklist *)malloc(sizeof(linklist));
    q=p;
    for(i=1;i<n-1;i++)
    {
        q->data=s;
        s=s%n+1;
        q->next=(linklist *)malloc(sizeof(linklist));
        q=q->next;
    }
    q->data=s;
    q->next=p;
    node=n;
    r=(linklist *)malloc(sizeof(linklist));
    q=r;
    while(node>1){
        if(m==1){
            r->next=p;
            node=1;
        }
        else{
            for(i=1; i<=m-2; i++)
                p=p->next;
            q->next=p->next;  // 将数到m的人出圈,链到出列人的链表中
            q=q->next;
            p->next=p->next->next;
            p=p->next;
            node--;
        }
    }
    for(i=1; i<=n-1; i++){    // 依次打印出列人的序号
        r=r->next;
        cout<<"The"<<i<<"th person is number:"<<r->data<<endl;
    }
    if(m==1)
        cout<<"The last one is number:"<<r->next->data<<endl;
    else
        cout<<"The last one is number:"<<p->data<<endl;


    return 1;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册