数据结构课程设计

发布 2022-10-05 01:20:28 阅读 6169

题目序号:1122 链表的建立和逆序输出。

程序**:#include <>

#include <>

#include<>

typedef int elemtype;

typedef struct node

elemtype data;

struct node *next;

node,*linkedlist; /定义链表结点。

linkedlist linkedlistcreatr() 尾插法建立单链表。

node *l,*r;

l = node *)malloc(sizeof(node));

l->next = null;

r = l;

elemtype x;

while(scanf("%d",&x)!=eof &&x!=0)

return l;

linkedlist reverselist(linkedlist l) /把链表元素逆置。

if(l->next ==null ||l->next->next ==null)

node *t = null,*p = l->next,*q = l->next->next;

while(q !=null)

l->next->next = null;

l->next = p;

return l;

int main(void)

linkedlist list,start;

list = linkedlistcreatr();

reverselist(list);

for(start = list->next;start!=null;start=start->next) /输出单链表。

printf("%d ",start->data);

printf("");

return 0;

题目序号:1127

程序**:#include<>

#include<>

#include<>

typedef char elemtype;

#define maxsize 50

typedef struct node

elemtype data;

struct node *lchild;

struct node *rchild;

btnode; /定义树结点。

btnode *creatbtnode(char *pre,char *in,int n)

/* pre存放先序序列,in存放中序序列,n为二叉树的结点个数,本算法执行后返回构造二叉链的根结点指针 */

btnode *s;

char *p;

int k;

if(n<=0)return null;

s=(btnode*)malloc(sizeof(btnode创建二叉树结点*s

s->data=*pre;

for(p=in;p if(*p==*prepre指向根结点。

break在in中找到后退出循环。

k=p-in确定根结点在in中的位置。

s->lchild=creatbtnode(pre+1,in,k递归构造左子树。

s->rchild=creatbtnode(pre+k+1,p+1,n-k-1递归构造右子树。

return s;

void postorder(btnode *b后序遍历的递归算法。

if(b!=null)

inorder(b->lchild后序遍历左子树

inorder(b->rchild后序遍历右子树。

printf("%c",b->data访问根结点

int main(void)

int n=0,i=0;

elemtype pre[maxsize],in[maxsize];

gets(pre输入树的先序序列。

gets(in输入树的中序序列。

n=strlen(pre结点个数。

btnode *b=null;

b=creatbtnode(pre,in,n构造二叉树。

postorder(b后续遍历二叉树。

printf("");

return 0;

题目序号:1128 欧拉图。

程序**。#include<>

#include<>

#define max 100

int visited[max]=

int connect(mgraph* g判断有向图是否是强连通。

连通返回1,否则返回0

int i,flag=1;

dfs(g,1);

for(i=1;i<=g->n;i++)

return flag;

int degree(mgraph* g判断每个顶点的出度与入度是否相等。

若相等返回1,否则返回0

int i,j,flag=1;

int degree[2][maxdegree[0]记录出度,degree[1]记录入度。

for(i=1;i<=g->n;i++)

for(i=1;i<=g->n;i++)

return flag;

int main(void)

int n;

while(scanf("%d",&n)!=eof)

return 0;

题目序号:1134 快速排序。

程序**:#include <>

void quicksort(int a,int left,int right)//对a[left]至a[right]元素进行快速排序。

int i=left,j=right,temp;

temp=a[left];

if(left>right区间内没有元素的情况。

return;

while(i!=j从区间两端交替向中间扫描,直到i=j为止。

while(a[j]>=temp &&j>i从右向左扫描,找第一个小于temp的a[j]

j--;if(j>i找到这样的a[j],a[i]<-a[j]交换。

a[i++]a[j];

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...