精华内容
下载资源
问答
  • 主要介绍了C语言链表实现贪吃蛇游戏源码,适合C语言入门者学习阅读,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了C语言链表实现图书管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了C语言链表实现歌手评分系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了C语言链表实现学生管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • C语言链表实现字符串输入、查找、删除等 C语言实验内容 C语言链表实现字符串输入、查找、删除等 C语言实验内容
  • C语言链表实现多项式应用,很好用,推荐给大家。
  • C语言链表实现的学生成绩管理系统,交互友好,包含录入、插入、修改成绩等大量功能,本作业成绩95+,包你满意
  • C语言链表实现进程转换,阻塞变就绪,就绪变执行,执行变阻塞三种状态的转换
  • nmea-0183协议解析C语言链表实现,读取一个GPStxt对其中的nmea协议进行解析筛选
  • 小型通讯录程序c语言链表实现(源代码) CentOS下vim编辑器gcc编译器
  • c语言链表实现源代码

    2009-10-28 08:58:46
    c语言链表实现源代码 自己写的。。。挺好用的
  • C语言链表实现大数加法

    千次阅读 2018-12-18 16:17:46
    C语言链表实现大数加法 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct list { ...
    C语言链表实现大数加法
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef struct list {
    	int num=0;
    	struct list* next;
    }List;
    
    void LinkList_reverse(List *L);
    void insertList(List* tempList, int num);
    void inputNumber();
    void addNumber(List* list1, List* list2);
    void insertList(List* tempList, int num);
    void logList(List* list);
    static List* initList();
    
    static List* initList() {
    	List* list = NULL;
    	list = (List *)malloc(sizeof(List));
    	if (list == NULL) {
    		printf("init failed---malloc failed");
    		return NULL;
    	}
    	list->next = NULL;
    	return list;
    }
    
    void inputNumber() {
    	char c;
    	List* num[2];
    	for (int i = 0; i < 2; i++) {
    		num[i] = initList();
    		while ((c = getchar()) != '\n') {
    			insertList(num[i], c - '0');
    		}
    		
    	}
    	LinkList_reverse(num[0]);
    	LinkList_reverse(num[1]);
    
    	printf("输入数据结束\n");
    	//for debug
    	logList(num[0]);
    	logList(num[1]);
    	addNumber(num[0], num[1]);
    
    	//free
    }
    
    void addNumber(List* list1, List* list2) {
    	List* result = initList();
    	List* temp1 = list1;
    	List* temp2 = list2;
    
    	List* newList=NULL;
    	
    	List* temp = result;
    
    	int bitInc = 0;			//进位
    	while (temp1->next && temp2->next) {
    		newList = initList();
    		temp->next = newList;
    
    		printf("list1->num: %d and list2->num: %d", temp1->next->num, temp2->next->num);
    		temp->next->num = (temp1->next->num + temp2->next->num + bitInc) % 10 ;
    		printf(" temp->num: %d\n", temp->next->num);
    		bitInc = (temp1->next->num + temp2->next->num + bitInc) / 10;
    
    		temp1 = temp1->next;
    		temp2 = temp2->next;
    		
    		temp = temp->next;
    	}
    
    	while (temp1->next) {
    		newList = initList();
    		temp->next = newList;
    
    		temp->next->num = (temp1->next->num + bitInc) % 10;
    		bitInc = (temp1->next->num + bitInc) / 10;
    		temp1 = temp1->next;
    
    		temp = temp->next;
    	}
    	while (temp2->next) {
    		newList = initList();
    		temp->next = newList;
    
    		temp->next->num = (temp2->next->num + bitInc) % 10;
    		bitInc = (temp2->next->num + bitInc) / 10;
    		temp2 = temp2->next;
    
    		temp = temp->next;
    	}
    
    	if (bitInc > 0) {
    		newList = initList();
    		temp->next = newList;
    
    		temp->next->num = bitInc;
    		temp = temp->next;
    	}
    	
    	//end
    	LinkList_reverse(result);
    	logList(result);
    }
    
    void insertList(List* tempList, int num) {
    	List* temp = initList();
    	List* head = tempList;
    
    	if (temp != NULL) {
    		temp->num = num;
    	}
    
    	while (head->next) {
    		head = head->next;
    	}
    	if (head->next == NULL) {
    		head->next = temp;
    	}
    }
    
    void logList(List* list) {
    	printf("进入log......\n");
    	List* temp = NULL;
    	temp = list;
    	if (temp ->next == NULL) {
    		printf("list is null-----log\n");
    	}
    	while (temp->next)
    	{
    		printf("%d", temp->next->num);
    		temp = temp->next;
    	}
    	printf("\n");
    }
    
    void LinkList_reverse(List *L)
    {
    	List *p = L->next;
    	List *q;
    	L->next = NULL;
    	while (p != NULL)
    	{
    		q = p;
    		p = p->next;
    		q->next = L->next;
    		L->next = q;
    	}
    }
    
    
    int main()
    {
    	inputNumber();
    	
        return 0;
    }
    

    nothing

    展开全文
  • 大学期间用C语言链表实现的一个图书管理系统,主要功能有 a. 设备申请。由专业人员填写“申请表”送交领导批准购买。 b. 设备入库。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、...
  • C语言链表实现学生成绩信息的管理更新时间:2017/2/9 1:33:00浏览量:597手机版/*---------------------------------------------- // Student.cpp : 链表实现对学生成绩的管理------------------------------------...

    C语言链表实现学生成绩信息的管理

    更新时间:2017/2/9 1:33:00  浏览量:597  手机版

    /*---------------------------------------------- // Student.cpp : 链表实现对学生成绩的管理

    ------------------------------------------------*/ #include

    #include

    #include

    using namespace std;

    struct Student

    { int id;

    char *name;

    float score;

    Student *next;

    };

    Student* Create();

    Student* Create(int i, char *ch, float sc); void Insert(Student *h, Student *p);

    void Output(Student *h);

    Student* Search(Student *h, const int id); void Delete(Student *h, Student *p);

    int main(int argc, char* argv[])

    { Student *head, *p;

    head=Create();

    p=Create(1,"a",83);

    Insert(head,p);

    p=Create(2,"b",97);

    Insert(head,p);

    p=Create(3,"c",64);

    Insert(head,p);

    p=Create(4,"d",76);

    Insert(head,p);

    p=Create(5,"e",83);

    Insert(head,p);

    Output(head);

    p=Search(head,2);

    Delete(head,p);

    Output(head);

    return 0;

    }

    Student* Create()

    { Student *head;

    head=(Student *)malloc(sizeof(Student)); head->next=NULL;

    return head;

    }

    Student* Create(int i, char *ch, float sc)

    { Student *p;

    p=(Student *)malloc(sizeof(Student)); p->id=i;

    p->name=ch;

    p->score=sc;

    p->next=NULL;

    return p;

    }

    void Insert(Student *h,Student *p)

    { /*

    Student *cur;

    cur=h;

    while(cur->next!=NULL)

    { cur=cur->next;

    }

    cur->next=p;

    */

    if(h->next==NULL)

    { h->next=p;

    }

    else

    {

    Student *cur,*q;

    for(q=h->next;q!=NULL;q=q->next)

    { if(q->id>p->id)

    break;

    }

    for(cur=h; cur->next!=q; cur=cur->next);

    展开全文
  • 大一的课设 用的链表实现
  • 摘要:VC/C++源码,游戏编程,贪食蛇 C语言实现贪食蛇游戏,采用链表实现,首先 创建方向结构体、食物结构体、蛇身链表结构体、蛇的属性结构体  用到windows.h头文件里的gotoxy()函数,作用是将光标定位到指定坐标。 ...
  • 约瑟夫环的C语言链表实现

    千次阅读 2017-12-13 15:16:43
    约瑟夫环的C语言链表实现约瑟夫环在生活中一般为游戏使用代码块linklist.cpp:// linklist.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include "linklist.h" using namespace std; int _tmain(int ...

    约瑟夫环的C语言链表实现

    约瑟夫环在生活中一般为游戏使用

    代码块

    linklist.cpp:

    // linklist.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "linklist.h"
    
    
    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    {
        link_plist l = NULL;
        int n = 0,ret = 0;
        //创建单向循环链表
        cout<<"please input game number:";
        cin>>n;  
    
        linklist_create(&l,n);
        linklist_show(l);
        //数N出局,并且输出(约瑟夫·胡环)
        cout<<"please input josep hu number:"<<endl;
        cin>>n;
        ret = josephu(l,n);
        cout<<"josep hu is:"<<ret<<endl;
        system("pause");
        return 0;
    }

    linklist.h:

    #ifndef __LINKLIST_H_
    #define __LINKLIST_H_
    
    #include <stdio.h>
    #include <stdlib.h>
    #include "iostream"
    
    
    typedef int datatype;
    
    typedef struct linklist{
        datatype data;
        struct linklist *next;
    }link_list,*link_plist;
    
    extern void linklist_create(link_plist *l ,int n);
    extern void linklist_show(link_plist l);
    extern int josephu(link_plist l, int n);
    
    #endif 

    josephu.cpp:

    #include "stdafx.h"
    #include "linklist.h"
    
    using namespace std;
    /**
    
    * 函数名:Func
    
    * 作者:林森
    
    * 日期:2017-12-12 15:16:42
    
    **/ 
    void linklist_create(link_plist *l ,int n)
    {
        int i=0,num=0;
        link_plist New = NULL,p;
        //p = l;
        for(i = 1;i<=n;i++)
        {
            if(1 == i)
            {
                (*l) = (link_plist)malloc(sizeof(link_list));
                if((*l) == NULL)
                {
                    cout<<"linklist create failed!";
                    exit(1);
                }
                (*l)->data = i;
                (*l)->next = (*l);
                p = *l;
            }
            else 
            {       
                New = (link_plist)malloc(sizeof(link_list));
                if(New == NULL)
                {
                    cout<<"linklist create failed!";
                    exit(1);
                }
                New->data = i;
                //插入表尾
                New->next = (*l)->next;
                (*l)->next = New;
    
                (*l) = (*l)->next;
    
            }       
        }
    }
    /**
    
    * 函数名:linklist_show
    
    * 作者:林森
    
    * 日期:2017-12-12 15:16:42
    
    **/ 
    void linklist_show(link_plist l)
    {
        link_plist p = l->next;
        while(p!= l)
        {
            cout<<" "<<p->data<<"";
            p=p->next;
        }
        cout<<" "<<p->data<<"";
        cout<<""<<endl;
    }
    /**
    
    * 函数名:josephu
    
    * 作者:林森
    
    * 日期:2017-12-12 15:16:42
    
    **/ 
    int josephu(link_plist l, int n)
    {
        link_plist p = l,q;
        int i = 0;
    
        while(p->next != p)
        {
            //找到需要删除的前一个位置
             for(i=0; i<n-2; i++)
            {
                p =p ->next;
            }
            //删除元素
             q = p->next;
             p->next =q->next;
             free(q);
    
            //指向下一个位置
             p = p->next;
    
        }
        //cout<<""<<endl;
        return p->data;;
    }

    脚注

    生成一个脚注1.

    目录

    [TOC]来生成目录:

    流程图:

    Created with Raphaël 2.1.0开始数n出局只剩下一个?结束yesno

    哈哈!第一次使用markdown写博客,记录下


    1. 这里是 脚注内容.
    展开全文
  • C语言链表实现增删查改 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct student{ char num[20]; char name[20]; int Chanese; int English; int Math; struct ...

    C语言链表实现增删查改

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct student{
    	char num[20];
    	char name[20];
    	int Chanese;
    	int English;
    	int Math; 
    	struct student *next;
    }Lnode,* LinkList;
    void Display(LinkList list){
    	Lnode *p = list->next;
    	while( p != NULL ){
    		printf("链表值为:\n");
    		printf("%-16s%-16s%-8d%-8d%-8d\n",p->num,p->name,p->Chanese,p->English,p->Math);
    		p = p->next;
    	}
    }
    void InitList(LinkList list){
    	Lnode *head=list;
    	head = (LinkList)malloc(sizeof(Lnode));
    	head->next = NULL;
    }
    
    void AddStudent(LinkList list){
    	Lnode *p = list,*node;
    	node = (LinkList)malloc(sizeof(Lnode));
    	while(p->next != NULL){
    		p = p->next;
    	}
    	p->next = node;
    	p = node;
    	printf("请输入该生的学号,姓名,语文成绩,英语成绩,数学成绩:\n");
    	scanf("%s",&node->num);
    	scanf("%s",&node->name);
    	scanf("%d",&node->Chanese);
    	scanf("%d",&node->English);
    	scanf("%d",&node->Math);
    	p->next = NULL;
    }
    void Search_name(LinkList list){
    	Lnode *p = list->next;
    	char a[20];
    	printf("请输入要查找学生的姓名:\n");
    	scanf("%c",&a);
    	while( p != NULL ){
    		if(strcmp(a,p->name) == 0){
    			printf("查找结果如下:\n学号\t姓名\t语文成绩\t英语成绩\t数学成绩\t");
    			printf("%-16s%-8s%-8d%-8d%-8d\n",p->num,p->name,p->Chanese,p->English,p->Math); 
    		}
    		p = p->next;
    	}
    }
    void Search_num(LinkList list){
    	Lnode *p = list->next;
    	char a[20];
    	printf("请输入要查找学生的学号:\n");
    	scanf("%s",&a);//不要忘了去地址符 
    	//Display(p);
    	//printf("输入的值为:%s",a); 
    	while( p != NULL ){
    		if(strcmp(a,p->num) == 0){
    			printf("查找结果如下:\n学号\t姓名\t语文成绩\t英语成绩\t数学成绩\t\n");
    			printf("%-s\t%-s%\t%-d\t%-d\t%-d\t\n",p->num,p->name,p->Chanese,p->English,p->Math); 
    		}
    		p = p->next;
    	}
    }
    void SearchStudent(LinkList list){
    	int n = 0;
    	printf("请选择查找方式:\n1.按姓名查找\n2.按学号查找\n");
    	scanf("%d",&n);
    	printf("输入的值为:%d\n",n);
    	if ( n==1 ){
    		Search_name(list);
    	}
    	else if( n==2 ){
    		Search_num(list);
    	}
    	else{
    		printf("输入有误!\n");
    	}	
    }
    void Dele_name(LinkList list){
    	Lnode *pre = list,*p = pre->next,*q;
    	char a[20];
    	printf("请输入要删除学生的姓名:\n");
    	scanf("%s",&a);
    	while( p != NULL ){
    		if(strcmp(a,p->name) == 0){
    			q = p;						//	q = p;
    			p = p->next;				//	pre->next = p->next;
    			pre->next = p;				//	p = p->next;
    			free(q);					//注意上面的错误 
    		}
    		else{//这里要加else 
    			pre = p;
    			p = p->next;	
    		}	
    	}
    }
    void Dele_num(LinkList list){
    	Lnode *pre = list,*p = pre->next,*q;
    	char a[20];
    	printf("请输入要删除学生的学号:\n");
    	scanf("%s",&a);//要用%s 和 &a  
    	while( p != NULL ){
    		printf("测试\n");
    		if(strcmp(a,p->num) == 0){
    		
    			q = p;
    			p = p->next;
    		//	pre->next = p->next; 
    		//	p = pre->next;
    			pre->next = p;
    			free(q);
    			printf("测试2\n");
    		}
    		else{
    			pre = p;
    			p = p->next;	
    		}
    		
    	}
    }
    void DeleStudent(LinkList list){
    	printf("选择删除方式:\n1.按姓名删除\n2.按学号删除\n");
    	int n = 0;
    	scanf("%d",&n);
    	if ( n==1 ){
    		Dele_name(list);
    	}
    	else if( n==2 ){
    		Dele_num(list);
    	}
    	else{
    		printf("输入有误!\n");
    	}	
    }
    void Change_name(LinkList list){
    	Lnode *p = list->next;
    	char a[20],s[20];
    	int n=0;
    	printf("请输入要修改学生的姓名:\n");
    	scanf("%s",&a);
    	while( p != NULL ){
    		if(strcmp(a,p->name) == 0){
    			printf("选择要修改的学生信息;\n"); 
    			printf("1.学号 2.姓名 3.语文成绩 4.英语成绩 5.数学成绩"); 
    			scanf("%d",&n);
    			switch(n){
    			case 1:
    				printf("学号修改为:\n");
    				scanf("%s",&p->num); break;
    			case 2:
    				printf("姓名修改为:\n");
    				scanf("%s",&p->name);break;
    			case 3:
    				printf("语文成绩修改为:\n");
    				scanf("%d",&p->Chanese);break;
    			case 4:
    				printf("英语成绩修改为:\n");
    				scanf("%d",&p->English);break;
    			case 5:
    				printf("数学成绩修改为:\n");
    				scanf("%d",&p->Math);break;		
    			}
    			p = p->next;
    		}
    		else
    			p = p->next;
    	}
    }
    void Change_num(LinkList list){
    	Lnode *p = list->next;
    	char a[20],s[20];
    	int n=0;
    	printf("请输入要修改学生的学号:\n");
    	scanf("%s",&a);
    	while( p != NULL ){
    		if(strcmp(a,p->num) == 0){
    			printf("选择要修改的学生信息;\n"); 
    			printf("1.学号 2.姓名 3.语文成绩 4.英语成绩 5.数学成绩"); 
    			scanf("%d",&n);
    			switch(n){
    			case 1:
    				printf("学号修改为:\n");
    				scanf("%s",&p->num); break;
    			case 2:
    				printf("姓名修改为:\n");
    				scanf("%s",&p->name);break;
    			case 3:
    				printf("语文成绩修改为:\n");
    				scanf("%d",&p->Chanese);break;
    			case 4:
    				printf("英语成绩修改为:\n");
    				scanf("%d",&p->English);break;
    			case 5:
    				printf("数学成绩修改为:\n");
    				scanf("%d",&p->Math);break;
    			}
    			p = p->next;
    		}
    		else
    			p = p->next;
    	}
    }
    void ChangeStudent(LinkList list){
    	printf("选择修改方式:\n1.查姓名修改\n2.查学号修改\n");
    	int n = 0;
    	scanf("%d",&n);
    	if ( n==1 ){
    		Change_name(list);
    	}
    	else if( n==2 ){
    		Change_num(list);
    	}
    	else{
    		printf("输入有误!\n");
    	}
    }
    
    int Average(LinkList list){
    	Lnode *p = list->next;
    	int count = 0, aver = 0, sum = 0;
    	int n;
    	printf("选择哪一门的平均成绩:\n1.语文 2.英语 3.数学 \n");
    	scanf("%d",&n);
    	switch (n){
    		case 1:
    			#define  subject p->Chanese
    			break; 
    		case 2:
    			#define  subject p->English
    			break; 
    		case 3:
    			#define  subject p->Math
    			break; 		
    	}
    	while( p != NULL ){
    		count++;
    		printf("%d次的值为%d\n",count,subject);
    		sum += subject;
    		printf("sum值为:%d\n",sum);
    		p = p->next;
    	}
    	return aver = sum/count;
    }
    
    
    int main(){
    	LinkList list;
    	int aver=0;
    	AddStudent(list);
    //	SearchStudent(list);
    //	AddStudent(list);
    //	DeleStudent(list);
    //	Display(list);
    //	ChangeStudent(list);
    //	Display(list);
    //	AddStudent(list);
    	AddStudent(list);
    	aver = Average(list);
    	printf("平均值为:%d\n",aver);
    } 
    
    展开全文
  • 这篇文章主要为大家详细介绍了C语言链表实现歌手评分系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,本文实例为大家分享了C语言链表实现歌手评分系统的具体代码,供大家参考,具体内容如下: 下面是小编...
  • 基于VC6++开发环境,使用自定义的循环链表存储蛇身,使用绘图函数绘制蛇身,使用键盘控制蛇的移动方向。
  • C语言链表实现

    千次阅读 2018-09-07 16:33:09
    链表实现带头结点的栈,入栈用头插法 环境codeblocks */ #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdbool.h&gt; typedef int ElemType; typedef struct Node...
  • 利用C语言双向链表实现的学生信息管理系统Demo
  • 背包问题哦,采用c语言链表的知识点,已经挺完备了,欢迎交流

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,194
精华内容 3,677
关键字:

c语言链表实现

c语言 订阅