❶ 数据结构算法提问:(C语言)
先将二个线性表按升序(或降序)排列,然后各遍历一次,就可以完成插入了.
比如:
LA 1-3-5-7
LB 2-3-4
LA的第一个结点是1,LB的第一个结点是2,这样,LA找下个结点,发现是3,比LB大,说明LA里没有2,这样把2插入LA,再判断LA的3和LB的3,相等,LA后移,LB也后移,发现LA是5,LB是4,LA比LB大,说明LA里不存在4,在LA里插入4
指向LA的指针设置二个,一个指向移之前的,这样比如移到3的时候发现3比LB的2大,就用移之前的插入2这个结点就行了,没啥别的特别的了,
程序应该比较简单就不实现了,只说明下我的思路!~
❷ 数据结构题集的内容提要
本题集与清华大学出版社出版的《数据结构》(C语言版)一书相配套,主要内容有:习题与学习指导、实习题和部分习题的提示或答案三大部分和一个附录[“数据结构算法演示系统(类C描述语言3.1中文版)使用手册”,此软件已由清华大学出版社出版]。
其中习题篇的内容和数据结构(C语言版)一书相对应,也分为12章,每一章大致由基本内容、学习要点、算法演示内容及基础知识题和算法设计题五部分组成。实习题分成六组,每一组都有鲜明的主题,同绕1至2种数据结构,安排4至9个题,每个题都有明确的练习目的和要求,在每一组中都给出一个实习报告的范例,以供读者参考。
本书内容丰富、程序设计观点新颖,在内容的详尽程度上接近课程辅导材料,不仅可作为大专院校的配套教材,也是广大工程技术人员和自学读者颇有帮助的辅助教材。
❸ 清华大学—数据结构视频(严蔚敏老师)里用的演示软件是什么
http://download.csdn.net/download/eyestar_2050/2271610
❹ 我想知道代做一个数据结构的算法演示系统用C#做的话,会不会很复杂,只要实现顺序和链表的插入删除动画
确实挺复杂的。不过用其他语言也简单不到哪里去呀。
❺ 数据结构的算法动态演示系统dsdemo怎样编写
当出现开机启动慢的情况时,一般是由于开机启动项太多导致,用户可以按照以下方法减少开机启动项:
XP系统:
1.点击【开始】—【运行】,在运行里输入命令【msconfig】,点击【确定】。
2.选择【启动】选项卡,把不想开机加载的程序前面的【对钩】取消。
3.根据提示选择【重新启动】即可。
Win7系统:
1.单击屏幕左下角的【开始】菜单。
2.在左下角的搜索窗口中输入【msconfig】,然后点击上方显示的【msconfig】程序。
3.在【系统配置】窗口中选择【启动】选项。
4.将开机不需要启动程序前的“√”取消,然后点击下方的【确定】。
5.根据提示选择【重新启动】即可。
Win8系统:
1.使用鼠标右键点击屏幕下方的任务栏,选择【任务管理器】。
2.进入任务管理器后,选择【启动】。
3.选择需要取消开机启动的程序,点击右下角的【禁用】。
4.当此程序的状态变为【已禁用】即可。
若减少开机启动项后问题依然存在,建议将近期安装的软件程序卸载并对系统进行病毒的查杀或者将操作系统重新安装。
❻ 用FALSH实现数据结构经典算法中汉诺塔的动画演示(可以是课件)
我有c++的代码。不知道你要不
❼ 编一个“数据结构算法演示”的软件,比较适合的语言有那些
无所谓语言
❽ 设计数据结构相关算法的演示系统。
//顺序表
#include<iostream>
#include<string>
using namespace std;
#define N 100
//主串和子串的输入格式均为$abcdefg...,开始匹配的位置为1(或其他合法位置)匹配结果不包括'$'
int Index_KMP(string& s,string& p,int start_pos)
{
int in=1,jn=0;
int* next=new int[p.length()];
next[1]=0;
while(in<p.length()-1)
{
if(jn==0||p[in]==p[jn]){++in;++jn;next[in]=jn;}
else jn=next[jn];
}
cout<<"子串"<<p<<"的next数组值为:"<<endl;
int i;
for( i=1;i<p.length();i++)
cout<<next[i]<<endl;
i=start_pos;
int j=1;
while(i<=s.length()-1&&j<=p.length()-1)
{if(j==0||s[i]==p[j]){++i;++j;}
else j=next[j];
}
if(j>=p.length()) return i-p.length()+1;
else return 0;
}
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<<" ╔=========================================================╗\n";
cout<<" 链表 \n";
cout<<" ╚=========================================================╝\n";
cout<<" 请选择您要的操作: \n";
cout<<" ╔=========================================================╗\n";
cout<<" * 1、插入 * \n";
cout<<" * 2、查找 * \n";
cout<<" * 3、删除 * \n";
cout<<" * 4、合并 * \n";
cout<<" * 0、退出 * \n";
cout<<" ╚=========================================================╝\n";
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;
}
#define MaxSize 100
typedef int DataType;
class SeqList
{
DataType list[MaxSize];
int length;
public:
SeqList(){length=0;}
void SLCreat(int n);
void SLInsert(int i,DataType x);
void SLDelete(int i);
int GetLength(){return length;}
int SLFind(DataType x);
DataType SLGet(int i);
int SLIsEmpty();
void SLPrint();
};
//创建顺序表
void SeqList::SLCreat(int n)
{
DataType x;
cout << "请输入数据元素:";
for (int i=0;i<n;i++){
cin >>x;
list[i]=x;
length++;
}
}
//在顺序表L中的i位置插入数据元素x
void SeqList::SLInsert(int i,DataType x)
{
int k;
if (length>=MaxSize)
cout<< "表已满,无法插入!"<<endl;
else if (i<0||i>length)
cout <<"参数i不合理!" <<endl;
else
{
for (k=length;k>i;k--)
{list[k]=list[k-1];}
list[i]=x;
length++;
}
}
//删除第i个位置的数据元素
void SeqList::SLDelete(int i)
{
int k;
if (!SLIsEmpty())
cout << "表已空,无法删除!"<<endl;
else if (i<0||i>length)
cout << "参数i不合理!"<<endl;
else
{
for (k=i-1;k<length;k++)
list[k]=list[k+1];
length--;
}
}
//查找数据元素x在表中的位置
int SeqList::SLFind(DataType x)
{
int i=0;
while (i<length&&list[i]!=x) i++;
if (i>=length) return -1;
else return i+1;
}
//获取第i个位置的元素的数值
DataType SeqList::SLGet(int i)
{
if (i<0||i>length)
{
cout<<"参数i不合理!"<<endl;
return 0;
}
else
return list[i-1];
}
//判断顺序表是否为空
int SeqList::SLIsEmpty()
{
if (length<=0) return 0;
else return 1;
}
//奖顺序表显示在屏幕上
void SeqList::SLPrint()
{
if (!SLIsEmpty())
cout<<"空表!"<<endl;
else
for (int i=0;i<length;i++)
cout<<list[i]<<" ";
cout <<endl;
}
int main()
{
int select;
char Continue='Y';
while(Continue=='Y')
{
cout<<" ╔=========================================================╗\n";
cout<<" 数据结构演示系统 \n";
cout<<" ╚=========================================================╝\n";
cout<<" 请选择操作: \n";
cout<<" ╔=========================================================╗\n";
cout<<" * 1.顺序表操作 * \n";
cout<<" * 2.链表操作 * \n";
cout<<" * 3.字符串匹配 * \n";
cout<<" ╚=========================================================╝\n";
cout<<endl;
cin>>select;
switch(select)
{
case 1:
{
SeqList myList;
int i,n,flag=1,select1;
DataType x;
cout<<" ╔=========================================================╗\n";
cout<<" 顺序表 \n";
cout<<" =========================================================== \n";
cout<<" * 1、建立顺序表 * \n";
cout<<" * 2、求第i个位置上的数值 * \n";
cout<<" * 3、求x数值的位置: * \n";
cout<<" * 4、在第i个位置插入数值元素x * \n";
cout<<" * 5、删除第i个位置上的数值 * \n";
cout<<" * 6、退出 * \n";
cout<<" ╚=========================================================╝\n";
cout<<endl;
while (flag)
{
cout<<"请选择操作: ";
cin>>select1;
switch(select1)
{
case 1:
cout<<"请输入顺序表的长度: ";
cin>>n;
myList.SLCreat(n);
cout<<"你所输入的顺序表为: ";
myList.SLPrint();
break;
case 2:
cout<<"请输入i的位置: ";
cin>>i;
cout<<"第"<<i<<"个位置上的数值为: "<<myList.SLGet(i)<<endl;
break;
case 3:
cout<<"请输入x的值: ";
cin>>x;
i=myList.SLFind(x);
if(i!=-1) cout<<"x的位置为: "<<i<<endl;
else cout<<"没有找到!";
break;
case 4:
cout<<"请输入要插入的元素的位置i和数值x: ";
cin>>i>>x;
myList.SLInsert(i,x);
cout<<"插入后的顺序表为: ";
myList.SLPrint();
break;
case 5:
cout<<"请输入要删除的元素的位置: ";
cin>>i;
myList.SLDelete(i);
cout<<"删除后的顺序表为: ";
myList.SLPrint();
break;
case 6:
flag=0;
//break;
}
}
}
break;
case 2:
{
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;
}
break;
case 3:
{
string s,p;
int pos,start_pos;
cout<<"输入主串:"<<endl;
cin>>s;
cout<<"输入子串"<<endl;
cin>>p;
cout<<"输入从主串开始匹配的位置:"<<endl;
cin>>start_pos;
pos=Index_KMP(s,p,start_pos);
if(!pos) cout<<"There's no substring("<<p<<")in mainstring("<<s<<")"<<endl;
else cout<<"The postion of substring("<<p<<")in mainstring("<<s<<")is "<<pos<<endl;
//system("pause");
//return 0;
}
break;
default :break;
}
}
cout<<"Continue(Y/N)?"<<endl;
cin>>Continue;
return 0;
}
❾ 求c++高手 有时间帮忙用C语言开发一个数据结构演示程序,帮助初学者理解数据结构的相关内容。
数据结构算法演示
................\DSDEMOW.EXE
................\IMAGE
................\.....\ALGOSELBACK.BMP
................\.....\ALGOSELROOT.BMP
................\.....\BANKGATE2.BMP
................\.....\BB.BMP
................\.....\CLOUDS.BMP
................\.....\CRTBK.BMP
................\.....\DOWN1.BMP
................\.....\DOWN2.BMP
................\.....\DOWN3.BMP
................\.....\DSBACK_LINK.BMP
................\.....\HANOIBACK.BMP
................\.....\LEFT1.BMP
................\.....\LEFT2.BMP
................\.....\LEFT3.BMP
................\.....\LISTS.BMP
................\.....\MAINFRMBACK.BMP
................\.....\MAIN_BACK1.BMP
................\.....\MAIN_BACK2.BMP
................\.....\MAZEBLOCKED.BMP
................\.....\MAZEDOWN.BMP
................\.....\MAZEEMPTY.BMP
................\.....\MAZELEFT.BMP
................\.....\MAZELEFT1.BMP
................\.....\MAZERETURNED.BMP
................\.....\MAZERIGHT.BMP
................\.....\MAZEUP.BMP
................\.....\MAZEVISITED.BMP
................\.....\PKGBACK.BMP
................\.....\PKGBMP0.BMP
................\.....\PKGBMP1.BMP
................\.....\PKGBMP2.BMP
................\.....\PKGBMP20.BMP
................\.....\PKGBMP21.BMP
................\.....\PKGBMP22.BMP
................\.....\PKGBMP23.BMP
................\.....\PKGBMP24.BMP
................\.....\PKGBMP25.BMP
................\.....\PKGBMP26.BMP
................\.....\PKGBMP27.BMP
................\.....\PKGBMP28.BMP
................\.....\PKGBMP29.BMP
................\.....\PKGBMP3.BMP
................\.....\PKGBMP4.BMP
................\.....\PKGBMP5.BMP
................\.....\PKGBMP6.BMP
................\.....\PKGBMP7.BMP
................\.....\PKGBMP8.BMP
................\.....\PKGBMP9.BMP
................\.....\PKGMSG1.BMP
................\.....\PKGMSG2.BMP
................\.....\PKGMSG3.BMP
................\.....\PKGMSGSB.BMP
................\.....\PKGNO1.BMP
................\.....\PKGNO2.BMP
................\.....\PKGNO3.BMP
................\.....\PKGNO4.BMP
................\.....\PKGNO5.BMP
................\.....\PKGSETUP0.BMP
................\.....\PKGSETUP1.BMP
................\.....\PKGSETUP2.BMP
................\.....\PKGSETUP3.BMP
................\.....\PKGSETUP4.BMP
................\.....\PKGSETUP5.BMP
................\.....\PKGSETUP6.BMP
................\.....\PKGSETUP7.BMP
................\.....\PKGSETUP8.BMP
................\.....\PKGSETUP9.BMP
................\.....\PLATE1.BMP
................\.....\PLATE2.BMP
................\.....\PLATE3.BMP
................\.....\PLATE4.BMP
................\.....\PLATE5.BMP
................\.....\POINTER.BMP
................\.....\POLEA.BMP
................\.....\POLEB.BMP
................\.....\POLEC.BMP
................\.....\QUEEN1.BMP
................\.....\QUEEN2.BMP
................\.....\QUEEN3.BMP
................\.....\QUEENBOARD.BMP
................\.....\QUEENSBACK.BMP
................\.....\RIGHT1.BMP
................\.....\RIGHT2.BMP
................\.....\RIGHT3.BMP
................\.....\RUNDOG1.BMP
................\.....\RUNDOG2.BMP
................\.....\RUNDOG3.BMP
................\.....\RUNDOG4.BMP
................\.....\RUNDOG5.BMP
................\.....\RUNDOG6.BMP
................\.....\STAND.BMP
................\.....\TOOLBAR_DATA.BMP
................\.....\TOOLBAR_OPEN.BMP
................\.....\TOOLBAR_RESET.BMP
................\.....\TOOLBAR_RUN.BMP
................\.....\TOOLBAR_RUNTOCUR.BMP
................\.....\TOOLBAR_STEP.BMP
❿ 数据结构(C语言版) 清华大学出版社 严蔚敏 吴伟民 编着的 那本书的光盘内容谁有给下下载地址...
http://ishare.iask.sina.com.cn/f/8350733.html?from=isnom
本光盘是《数据结构(C语言版)》一书的配书光盘,作为数据结构课程的
辅助学习工具。
1. 光盘运行环境
硬件:Pentium 100以上多媒体PC机。
软件:Windows 95/98/Me/2000/XP 操作系统。
2. 盘中内容
\DSDemoW 数据结构算法演示系统(Windows版)β测试版
\DSDemoC 数据结构算法演示系统(C语言描述)V3.1C中文版
Readme.txt 光盘使用说明
3. 使用光盘
(1) 进入光盘中的\DSDemoW 目录,运行DSdemoW.EXE,可以进入
数据结构算法演示系统(Windows版)β测试版的主界面。该版本的演示系统提供了
Pascal 和 C 两种程序设计语言的演示和算法源程序。欢迎各位读者对该软件提出
改进意见。
关于演示软件的数据结构算法演示系统(Windows版)用法,可以参考\DSDemoW
目录下的Manual.doc文件,可以用Microsoft Word 97及以上版本打开该文件。
(2) 进入光盘中的“\DSDemoC”目录,运行DSDemo.EXE,可以进入
数据结构算法演示系统(C语言描述)V3.1C中文版。该软件是在原DOS版程序
基础上改进而成,具体操作请按照界面上的提示进行。