链表头文件LinkList.h
#include <iostream> #include <ctime> using namespace std; #define ERROR 0 #define OK 1 typedef int ElemType; typedef int Status; typedef struct Node{ ElemType data; struct Node* next; } Node; typedef struct Node* LinkList; void ShowMenu(); void ShowList(LinkList *head); Status CreateWithHead(LinkList *head,int n); Status GetMidNode(LinkList L,ElemType *e);
实现文件LinkList.cpp
#include "LinkList.h" int main(){ int cmd; ElemType e; LinkList head; ShowMenu(); cin>>cmd; while(cmd){ switch(cmd){ case 1: CreateWithHead(&head,11); break; case 2: ShowList(&head); break; case 3: GetMidNode(head,&e); cout<<"\t\t中间节点为:"<<e<<endl; break; case 0:exit(0);break; default: exit(-1); break; } ShowMenu(); cin>>cmd; } return 0; } void ShowMenu(){ char *str="\t\t****************************"; cout<<str<<endl; cout<<"\t\t1.头插法"<<endl; cout<<"\t\t2.显示列表"<<endl; cout<<"\t\t3.获取中点"<<endl; cout<<"\t\t0.退出"<<endl; cout<<str<<endl; } void ShowList(LinkList *head){ int i=0; LinkList p; p=*head; while(p->next){ if(i%5==0){ cout<<endl; cout<<"\t\t"; } cout<<p->data<<" "; p=p->next; i++; } cout<<endl; } Status CreateWithHead(LinkList *head,int n){ LinkList p; int i; srand(time(0)); *head=(LinkList)malloc(sizeof(Node)); (*head)->next=NULL; for(i=0;i<n;i++){ p=(LinkList)malloc(sizeof(Node)); p->data=rand()%100+1; p->next=*head; *head=p; } return OK; } Status GetMidNode(LinkList L,ElemType *e){ LinkList search,mid; search=mid=L; while(search->next!=NULL){ if(search->next->next!=NULL){ search=search->next->next; mid=mid->next; }else{ search=search->next; } } *e=mid->data; return OK; }
相关推荐
栈链表_c语言栈链表_源码.zip
简易链表linux下实现单向链表的C语言实现程序,有详尽的链表操作函数,可以作为C语言学习的参考代码
JAVA实现链表_双向链表
双向链表\qdlist.h 双向链表\stdafx.cpp 双向链表\stdafx.h 双向链表\双向链表.cpp 双向链表\双向链表.ncb 双向链表\双向链表.dsw 双向链表\双向链表.dsp 双向链表\双向链表.opt
1.双向链表的初始化 2.双向链表的尾插法建立 3.双向链表插入结点 4.双向链表删除结点 5.双向链表遍历链表 6.双向链表按不同的属性查找节点 7.双指针查找节点
数据结构的学习对编程起着重要作用,这是一个实现循环链表的源码
数据结构的学习对编程起着重要作用,这是一个实现双向循环链表的源码
合并链表,设计一个算法将两个非递减有序链表A和B合并成一个新的非递减有序链表C。
单链表实现双向循环链表单向链表存在一个弊端就是,当需要获取某个结点p的前驱时,需要从头指针开始遍历链表,获得“前驱”的执行时间为O(n),为了克服单向链表的这种缺点,可以利用双向链表。在双向链表中有两个...
仓库管理系统_C语言_C++_数据结构_链表_课程设计
链表一般是用C或C++实现的,用VB的类模块实现,试过吗?没想到可以实现吧
实现栈,队列,链表的简单操作,其中链表包括单链表,双链表,循环链表。
通过建立双向链表,来实现双向查找,增加和删除的功能
MFC链表_学生管理系统_最后发布版本 实现系统的增删改查功能 适合新手研究
链表_ 建立及访问1
链表的练习,打印、反转、链表结合
内核链表_exactly42h_learnc_学习.zip
用VC编写的单链表 是数据结构中线性表中的一种
03静态链表_StaticLinkList.c
2_链表_求la和lb的交集_源码