这里面包括数据结构多数的算法

源代码在线查看: 单链表查找1.cpp

软件大小: 72 K
上传用户: zln12345
关键词: 数据结构 算法
下载地址: 免注册下载 普通下载 VIP

相关代码

				#include 
				#include 
				//单链表的定义:
				typedef char DataType;		//DataType可以是任何相应的数据类型如int, float或char
				typedef struct node			//结点类型定义
				{	DataType data;			//结点的数据域
					struct node *next;		//结点的指针域
				}ListNode;
				typedef ListNode *LinkList;
				
				void main()
				{
					LinkList head;
					ListNode *p;
					int i;
					LinkList CreateListR1(void);
					LinkList GetNode(LinkList head,int i);
					void PrintList(LinkList head);
					head=CreateListR1();		//建立单链表
					PrintList(head);		//打印单链表
					printf("请输入欲查找结点的序号:");
					scanf("%d",&i);
					p=GetNode(head,i);
					if (p==NULL)
						printf("未找到\n");
					else
						printf("找到第%d结点的值是%c\n",i,p->data);
				}
				
				//单链表的建立:
				LinkList CreateListR1(void)
				{	char ch;
					LinkList head=(ListNode *)malloc(sizeof(ListNode));
					ListNode *s,*r;
					r=head;					//尾指针初值指向头结点
					while ((ch=getchar())!='\n')
					{	s=(ListNode *)malloc(sizeof(ListNode));	//生成新结点
						s->data=ch;
						r->next=s;
						r=s;
					}
					r->next=NULL;
					return head;			//返回头指针
				}
				
				//单链表的打印:
				void PrintList(LinkList head)
				{
					ListNode *p;
					for(p=head->next;p;p=p->next)
						printf("%c",p->data);
					printf("\n");
				}
				
				//单链表的查找
				LinkList GetNode(LinkList head,int i)
				{//在带头结点的单链表head中查找第i个结点
					int j;
					ListNode *p;
					p=head;j=0;				//从头结点开始扫描
					while (p->next && j					{	p=p->next;
						j++;
					}
					if (i==j)
						return p;			//找到了第i个结点
					else
						return NULL;		//找不到满足条件的结点
				}
							

相关资源