//To create a LinkList
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
# define TRUE 1
# define FALSE 0
# define OK 1
# define ERROR 0
# define INFEASIBLE -1
# define OVERFLOW -2
typedef struct DuLNode
{ int data
struct DuLNode *prior
struct DuLNode *next
}DuLNode,*DuLinkList
// 初始条件:L已存在。 *** 作结果:返回L中数据元素个数
int ListLength(DuLinkList L)
{
int i=0
DuLinkList p=L->next// p指向第一个结点
while(p!=L) // p没到表头
{
i++
p=p->next
}
return i
}
// 由双链循环线性表L的头结点出发,正序输出每个数据元素
void ListTraverse(DuLinkList L)
{
DuLinkList p=L->next
while(p!=L)
{
cout<<简笑p->data<<"\t"
p=p->next
}
cout<<endl
}
// 由双链循环线性表L的头结点出发,逆序输出每个数据元素
void ListTraverseBack(DuLinkList L)
{
DuLinkList p=L->prior
while(p!=L)
{
cout<<p->data<<"\t"
p=p->prior
}
cout<<endl
}
//To Creatre a DuLinkList L with HeadNode
void CreateList_DuL(DuLinkList &L)
{
int n
int i
DuLNode *p
L=(DuLinkList)malloc(sizeof(DuLNode))
L->next=L->prior=L
cout<<"CreateList_L"<<endl<<"================"<<endl
cout<<"Please input the Init DuLinkNode Number: <eg. 5>"
cin>>n
cout<<"Please input the data for DuLinkList Nodes: <eg. 34,67,3,-9,45,...>"<<endl
for(i=ni>0--i)
{
p=(DuLinkList)malloc(sizeof(DuLNode))
cin>>p->data //Reverse order inputing for Creating a LinkList
p->prior=L
p->next=L->next
L->next->prior=p
L->next=p
}
if(n)
{
cout<<endl
cout<<"Success to Create a DuLinkList !"<<endl
ListTraverse(L)
cout<<endl
}
else cout<<"A NULL DuLinkList have been created !"<<endl
}
//樱首ListInsert_Dul()
int ListInsert_DuL(DuLinkList &L)
{
DuLNode *p=L,*s
int j=0
int i
int e
cout<<"======"<<"before insert:"<<"======"<<endl
ListTraverse(L)
cout<<"input the location you want to insert:"
cin>>i
while (i<1||i>ListLength(L)+1)
{
//i值不合法
cout<<"illeagle location,please input the correct location:"
cin>>i
}
cout<<"input the number you want to insert:"
cin>>e
while(j<i)
{ p=p->next
++j
}
if(!(s=(DuLinkList)malloc(sizeof(DuLNode))))
{
cout<<endl<<"Allocate space failure ! "
return (ERROR)
}
s->data=e
s->prior=p->prior
s->next=p
if(i==1)
L->next=s
p->prior->next=s
p->prior=s
cout<<"has insert:"<<e<<endl
ListTraverse(L)
cout<<"======"<<"after insert:"<<"======"<<endl<<endl
return (OK)
}
// 删除带头结点的双链循环线性表L的第i个元素,i的合法值为1≤i≤表长
int ListDelete(DuLinkList L)
{
DuLinkList p
int j=1// j为计数器
int e
int i
cout<<"input the location of the number you want to delete"<<endl
cin>>i
while(i<0||i>ListLength(L))
{
//i值不合法
cout<<"illeagle location,please input the correct location:"
cin>>i
}
p=L->next// p指向第一个结点
while(p!=L&&j<i) // 顺指针向后查找,直到p指向第i个元素或p指向头结点
{
p=p->next
j++
}
if(p==L||j>i) // 第i个元素不存在
{
cout<<"第i个元素不存在"<<endl
return ERROR
}
else
{
cout<<"======"<<"before delete:"<<"======"<<endl
ListTraverse(L)
e=p->data// 取第i个元素
if(!p) // p=NULL,即第i个元素不存在
return ERROR
e=p->data
p->prior->next=p->next
p->next->prior=p->prior
free(p)
cout<<"has delete:"<<e<<endl
ListTraverse(L)
cout<<"======"<<"after delete:"<<"======"<<endl<<endl
return OK
}
}
void menu(int c)
{
cout<<"================================================="<<endl
cout<<"\t\t1----建立"<<endl
cout<<"\t\t2----插入"<<endl
cout<<"\t\t3----删除"<<endl
cout<<"\t\t4----逆置"<<endl
//cout<<"\t\t5----菜单"<<endl
cout<<"\t\t0----退出"<<endl
cout<<"================================================="<<endl
cout <<endl<<"input you choice number:"
}
void main()
{
DuLinkList L
int c=1
while(c!=0)
{
switch(c)
{
case 0:
break
case 1:
CreateList_DuL(L)
break
case 2:
ListInsert_DuL(L)
break
case 3:
ListDelete(L)
break
case 4:
ListTraverseBack(L)
break
default:
cout<<"infeasible choice,input again:"<<endl
menu(c)
cin>>c
}
if(c!=0)
{
menu(c)
cin>>c
}
}
}
设按钮状态(高/低)输入某个IO口;找到读取这个IO口的数据地址;
程序不断读取这个地址,并仿嫌滚比较相应位是否有变化备余;
(要有去抖处理,否则一次按键会产生多个变化)
设指示灯对应的IO口数据地址;
根据按键发生与否设置这个IO口相应位进行翻转者咐。
http://download.chinaitlab.com/program/files/9312.htmlhttp://download.chinaitlab.com/special/visualcebook.htm
1. 如果你还没有启动Visual C++,那么启动Visual C++。
2. 使用File|New命令显示如下图所示的New对话框。注意,我已经选择了
Projects选项卡并加亮了要在本例中使用的工程类型。
3. 当选择了Win32 Console Application后,在Project Name 域中键入程序
名称。这个样本程序使用的名称为Console。你或许还需要修改一下Location域
的内容,那么单击一下该域旁边的浏览按钮,烂启枯系统会显示Choose Directory对话
框,在这个对话框中选择应旁裤用程序的存放目录。
4. 单击OK按钮。你会看到Win32 Console Application - Step 1 of 1对话框,
如下图所示。注意,在这个对话框中有几个应用程序类型供选择。这也是Visual
C++ 6.0的一个新特性。以前版本的Visual C++简单地创建一个空的工程。现在到了选择要创建哪种类型工程的时候了(即使空工程也要进行选择)。
5. (必要时)选择An Empty Project,然后单击Finish。你会看到一个New
Project Information对话框,它告诉你都选择了哪些选项。
6. 单击OK按钮创建示例程序。饥洞
在该工程真正能够运
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)